FIR2IR converter: handle receivers and parents more correctly

This commit is contained in:
Mikhail Glukhikh
2019-05-14 15:58:50 +03:00
parent 90009f002c
commit 26974788e9
59 changed files with 400 additions and 174 deletions
@@ -83,7 +83,7 @@ class Fir2IrDeclarationStorage(
val thisType = IrSimpleTypeImpl(symbol, false, emptyList(), emptyList())
val parent = this
thisReceiver = irSymbolTable.declareValueParameter(
startOffset, endOffset, thisOrigin, WrappedValueParameterDescriptor(), thisType
startOffset, endOffset, thisOrigin, WrappedReceiverParameterDescriptor(), thisType
) { symbol ->
IrValueParameterImpl(
startOffset, endOffset, thisOrigin, symbol,
@@ -177,45 +177,65 @@ class Fir2IrDeclarationStorage(
}
}
private fun IrDeclaration.setParentByOwnFir(firMember: FirCallableMemberDeclaration) {
val firBasedSymbol = firMember.symbol
internal fun findIrParent(callableMemberDeclaration: FirCallableMemberDeclaration): IrDeclarationParent? {
val firBasedSymbol = callableMemberDeclaration.symbol
val callableId = firBasedSymbol.callableId
val parentClassId = callableId.classId
if (parentClassId != null) {
return if (parentClassId != null) {
val parentFirSymbol = firSymbolProvider.getClassLikeSymbolByFqName(parentClassId)
if (parentFirSymbol is FirClassSymbol) {
val parentIrSymbol = getIrClassSymbol(parentFirSymbol)
val parentIrClass = parentIrSymbol.owner
parent = parentIrClass
// TODO: parentIrClass.declarations += this (probably needed for external stuff)
parentIrSymbol.owner
} else {
null
}
} else {
val packageFqName = callableId.packageName
val parentIrPackageFragment = getIrExternalPackageFragment(packageFqName)
parent = parentIrPackageFragment
parentIrPackageFragment.declarations += this
getIrExternalPackageFragment(packageFqName)
}
}
fun <T : IrFunction> T.declareParameters(function: FirFunction) {
private fun IrDeclaration.setAndModifyParent(irParent: IrDeclarationParent?) {
if (irParent != null) {
parent = irParent
if (irParent is IrExternalPackageFragment) {
irParent.declarations += this
} else if (irParent is IrClass) {
// TODO: irParent.declarations += this (probably needed for external stuff)
}
}
}
fun <T : IrFunction> T.declareParameters(function: FirFunction, containingClass: IrClass?) {
val parent = this
for ((index, valueParameter) in function.valueParameters.withIndex()) {
valueParameters += createAndSaveIrParameter(valueParameter, index).apply { this.parent = parent }
}
if (function !is FirConstructor && containingClass != null && (function as? FirNamedFunction)?.isStatic != true) {
val thisOrigin = IrDeclarationOrigin.DEFINED
val thisType = containingClass.thisReceiver!!.type
dispatchReceiverParameter = irSymbolTable.declareValueParameter(
startOffset, endOffset, thisOrigin, WrappedReceiverParameterDescriptor(),
thisType
) { symbol ->
IrValueParameterImpl(
startOffset, endOffset, thisOrigin, symbol,
Name.special("<this>"), -1, thisType,
varargElementType = null, isCrossinline = false, isNoinline = false
).apply { this.parent = parent }
}
}
}
private fun <T : IrFunction> T.bindAndDeclareParameters(
function: FirFunction,
descriptor: WrappedCallableDescriptor<T>,
setParent: Boolean,
irParent: IrDeclarationParent?,
shouldLeaveScope: Boolean
): T {
descriptor.bind(this)
if (setParent) {
setParentByOwnFir(function as FirCallableMemberDeclaration)
}
enterScope(descriptor)
declareParameters(function)
declareParameters(function, containingClass = irParent as? IrClass)
if (shouldLeaveScope) {
leaveScope(descriptor)
}
@@ -233,7 +253,7 @@ class Fir2IrDeclarationStorage(
fun getIrFunction(
function: FirNamedFunction,
setParent: Boolean = true,
irParent: IrDeclarationParent? = null,
shouldLeaveScope: Boolean = false,
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED
): IrSimpleFunction {
@@ -249,7 +269,7 @@ class Fir2IrDeclarationStorage(
function.isTailRec, function.isSuspend
)
}
}.bindAndDeclareParameters(function, descriptor, setParent, shouldLeaveScope)
}.bindAndDeclareParameters(function, descriptor, irParent, shouldLeaveScope)
}
if (function.visibility == Visibilities.LOCAL) {
@@ -285,11 +305,17 @@ class Fir2IrDeclarationStorage(
// TODO: suspend lambda
isSuspend = false
)
}.bindAndDeclareParameters(function, descriptor, setParent = false, shouldLeaveScope = false)
}.bindAndDeclareParameters(
function, descriptor, irParent = null, shouldLeaveScope = false
)
}
}
fun getIrConstructor(constructor: FirConstructor, setParent: Boolean = true, shouldLeaveScope: Boolean = false): IrConstructor {
fun getIrConstructor(
constructor: FirConstructor,
irParent: IrDeclarationParent? = null,
shouldLeaveScope: Boolean = false
): IrConstructor {
return constructorCache.getOrPut(constructor) {
val descriptor = WrappedClassConstructorDescriptor()
val origin = IrDeclarationOrigin.DEFINED
@@ -301,14 +327,14 @@ class Fir2IrDeclarationStorage(
constructor.name, constructor.visibility,
constructor.returnTypeRef.toIrType(session, this),
isInline = false, isExternal = false, isPrimary = isPrimary
).bindAndDeclareParameters(constructor, descriptor, setParent, shouldLeaveScope)
).bindAndDeclareParameters(constructor, descriptor, irParent, shouldLeaveScope)
}
}
}
}
fun getIrProperty(property: FirProperty, setParent: Boolean = true): IrProperty {
fun getIrProperty(property: FirProperty): IrProperty {
return propertyCache.getOrPut(property) {
val descriptor = WrappedPropertyDescriptor()
val origin = IrDeclarationOrigin.DEFINED
@@ -326,9 +352,6 @@ class Fir2IrDeclarationStorage(
isExternal = false
).apply {
descriptor.bind(this)
if (setParent) {
setParentByOwnFir(property)
}
}
}
}
@@ -411,13 +434,19 @@ class Fir2IrDeclarationStorage(
}
fun getIrFunctionSymbol(firFunctionSymbol: FirFunctionSymbol): IrFunctionSymbol {
return when (val firDeclaration = firFunctionSymbol.fir) {
val firDeclaration = firFunctionSymbol.fir
val irParent = (firDeclaration as? FirCallableMemberDeclaration)?.let { findIrParent(it) }
return when (firDeclaration) {
is FirNamedFunction -> {
val irDeclaration = getIrFunction(firDeclaration, shouldLeaveScope = true)
val irDeclaration = getIrFunction(firDeclaration, irParent, shouldLeaveScope = true).apply {
setAndModifyParent(irParent)
}
irSymbolTable.referenceSimpleFunction(irDeclaration.descriptor)
}
is FirConstructor -> {
val irDeclaration = getIrConstructor(firDeclaration, shouldLeaveScope = true)
val irDeclaration = getIrConstructor(firDeclaration, irParent, shouldLeaveScope = true).apply {
setAndModifyParent(irParent)
}
irSymbolTable.referenceConstructor(irDeclaration.descriptor)
}
else -> throw AssertionError("Should not be here")
@@ -425,7 +454,10 @@ class Fir2IrDeclarationStorage(
}
fun getIrPropertySymbol(firPropertySymbol: FirPropertySymbol): IrPropertySymbol {
val irProperty = getIrProperty(firPropertySymbol.fir as FirProperty)
val firProperty = firPropertySymbol.fir as FirProperty
val irProperty = getIrProperty(firProperty).apply {
setAndModifyParent(findIrParent(firProperty))
}
return irSymbolTable.referenceProperty(irProperty.descriptor)
}
@@ -208,7 +208,9 @@ internal class Fir2IrVisitor(
val origin = IrDeclarationOrigin.FAKE_OVERRIDE
if (functionSymbol.isFakeOverride) {
// Substitution case
val irFunction = declarationStorage.getIrFunction(originalFunction, setParent = false, origin = origin)
val irFunction = declarationStorage.getIrFunction(
originalFunction, declarationStorage.findIrParent(originalFunction), origin = origin
)
val baseSymbol = functionSymbol.overriddenSymbol
declarations += irFunction.setParentByParentStack().withFunction {
setFunctionContent(irFunction.descriptor, originalFunction, firOverriddenSymbol = baseSymbol)
@@ -218,7 +220,9 @@ internal class Fir2IrVisitor(
val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverride(session, originalFunction, functionSymbol)
val fakeOverrideFunction = fakeOverrideSymbol.fir as FirNamedFunction
val irFunction = declarationStorage.getIrFunction(fakeOverrideFunction, setParent = false, origin = origin)
val irFunction = declarationStorage.getIrFunction(
fakeOverrideFunction, declarationStorage.findIrParent(originalFunction), origin = origin
)
declarations += irFunction.setParentByParentStack().withFunction {
setFunctionContent(irFunction.descriptor, fakeOverrideFunction, firOverriddenSymbol = functionSymbol)
}
@@ -340,7 +344,9 @@ internal class Fir2IrVisitor(
}
override fun visitConstructor(constructor: FirConstructor, data: Any?): IrElement {
val irConstructor = declarationStorage.getIrConstructor(constructor, setParent = false)
val irConstructor = declarationStorage.getIrConstructor(
constructor, irParent = parentStack.last() as? IrClass
)
return irConstructor.setParentByParentStack().withFunction {
setFunctionContent(irConstructor.descriptor, constructor)
}.withParent {
@@ -420,7 +426,9 @@ internal class Fir2IrVisitor(
}
override fun visitNamedFunction(namedFunction: FirNamedFunction, data: Any?): IrElement {
val irFunction = declarationStorage.getIrFunction(namedFunction, setParent = false)
val irFunction = declarationStorage.getIrFunction(
namedFunction, irParent = parentStack.last() as? IrClass
)
return irFunction.setParentByParentStack().withFunction {
setFunctionContent(irFunction.descriptor, namedFunction)
}
@@ -503,7 +511,7 @@ internal class Fir2IrVisitor(
}
override fun visitProperty(property: FirProperty, data: Any?): IrProperty {
val irProperty = declarationStorage.getIrProperty(property, setParent = false)
val irProperty = declarationStorage.getIrProperty(property)
return irProperty.setParentByParentStack().withProperty { setPropertyContent(irProperty.descriptor, property) }
}
@@ -517,12 +525,6 @@ internal class Fir2IrVisitor(
return this
}
private fun <T : IrFunction> T.declareParameters(function: FirFunction) {
return with(declarationStorage) {
declareParameters(function)
}
}
private fun createPropertyAccessor(
propertyAccessor: FirPropertyAccessor, startOffset: Int, endOffset: Int,
@@ -548,7 +550,7 @@ internal class Fir2IrVisitor(
descriptor.bind(this)
declarationStorage.enterScope(descriptor)
if (!isDefault) {
declareParameters(propertyAccessor)
with(declarationStorage) { declareParameters(propertyAccessor, containingClass = null) }
}
setFunctionContent(descriptor, propertyAccessor).apply {
correspondingPropertySymbol = symbolTable.referenceProperty(correspondingProperty.descriptor)
@@ -710,8 +712,33 @@ internal class Fir2IrVisitor(
}
}
private fun IrExpression.applyReceivers(qualifiedAccess: FirQualifiedAccess): IrExpression {
return when (this) {
is IrCallImpl -> {
val ownerFunction = symbol.owner
if (ownerFunction.dispatchReceiverParameter != null) {
val explicitReceiver = qualifiedAccess.explicitReceiver?.toIrExpression()
if (explicitReceiver != null) {
dispatchReceiver = explicitReceiver
} else {
// TODO: implicit dispatch receiver
}
} else if (ownerFunction.extensionReceiverParameter != null) {
val explicitReceiver = qualifiedAccess.explicitReceiver?.toIrExpression()
if (explicitReceiver != null) {
extensionReceiver = explicitReceiver
} else {
// TODO: implicit extension receiver
}
}
this
}
else -> this
}
}
override fun visitFunctionCall(functionCall: FirFunctionCall, data: Any?): IrElement {
return functionCall.toIrExpression(functionCall.typeRef).applyCallArguments(functionCall)
return functionCall.toIrExpression(functionCall.typeRef).applyCallArguments(functionCall).applyReceivers(functionCall)
}
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: Any?): IrElement {
@@ -719,7 +746,7 @@ internal class Fir2IrVisitor(
}
override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: Any?): IrElement {
return qualifiedAccessExpression.toIrExpression(qualifiedAccessExpression.typeRef)
return qualifiedAccessExpression.toIrExpression(qualifiedAccessExpression.typeRef).applyReceivers(qualifiedAccessExpression)
}
private fun generateErrorCallExpression(startOffset: Int, endOffset: Int, calleeReference: FirReference): IrErrorCallExpression {
@@ -59,16 +59,21 @@ FILE fqName:<root> fileName:/qualifiedSuperCalls.kt
$this: VALUE_PARAMETER name:<this> type:<root>.CBoth
BLOCK_BODY
CALL 'public open fun foo (): kotlin.Unit declared in <root>.ILeft' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Unresolved reference: super<R|ILeft|>' type=<root>.ILeft
CALL 'public open fun foo (): kotlin.Unit declared in <root>.IRight' type=kotlin.Unit origin=null
PROPERTY name:bar visibility:public modality:FINAL [val]
$this: ERROR_CALL 'Unresolved reference: super<R|IRight|>' type=<root>.IRight
PROPERTY name:bar visibility:public modality:FINAL [val]
FUN name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.CBoth) returnType:kotlin.Int
correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.CBoth
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-bar> (): kotlin.Int declared in <root>.CBoth'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public open fun <get-bar> (): kotlin.Int declared in <root>.ILeft' type=kotlin.Int origin=null
$this: ERROR_CALL 'Unresolved reference: super<R|ILeft|>' type=<root>.ILeft
other: CALL 'public open fun <get-bar> (): kotlin.Int declared in <root>.IRight' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
$this: ERROR_CALL 'Unresolved reference: super<R|IRight|>' type=<root>.IRight
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
+4 -1
View File
@@ -24,6 +24,7 @@ FILE fqName:<root> fileName:/superCalls.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in <root>.Base'
CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null
$this: ERROR_CALL 'Unresolved reference: super<<implicit>>' type=kotlin.Any
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
@@ -43,13 +44,15 @@ FILE fqName:<root> fileName:/superCalls.kt
$this: VALUE_PARAMETER name:<this> type:<root>.Derived
BLOCK_BODY
CALL 'public open fun foo (): kotlin.Unit declared in <root>.Base' type=kotlin.Unit origin=null
PROPERTY name:bar visibility:public modality:FINAL [val]
$this: ERROR_CALL 'Unresolved reference: super<<implicit>>' type=<root>.Base
PROPERTY name:bar visibility:public modality:FINAL [val]
FUN name:<get-bar> visibility:public modality:FINAL <> ($this:<root>.Derived) returnType:kotlin.String
correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Derived
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-bar> (): kotlin.String declared in <root>.Derived'
CALL 'public open fun <get-bar> (): kotlin.String declared in <root>.Base' type=kotlin.String origin=null
$this: ERROR_CALL 'Unresolved reference: super<<implicit>>' type=<root>.Base
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:<root>.Base) returnType:kotlin.Int
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Base
@@ -21,6 +21,9 @@ FILE fqName:<root> fileName:/constValInitializers.kt
FIELD PROPERTY_BACKING_FIELD name:I2 type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-I0> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun <get-I1> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun <get-I1> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-I2> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:I2 visibility:public modality:FINAL [const,val]
@@ -40,6 +43,7 @@ FILE fqName:<root> fileName:/constValInitializers.kt
FIELD PROPERTY_BACKING_FIELD name:STR2 type:kotlin.String visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
$this: CONST String type=kotlin.String value="String"
other: CONST String type=kotlin.String value="2"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-STR2> visibility:public modality:FINAL <> () returnType:kotlin.String
correspondingProperty: PROPERTY name:STR2 visibility:public modality:FINAL [const,val]
@@ -50,6 +54,7 @@ FILE fqName:<root> fileName:/constValInitializers.kt
FIELD PROPERTY_BACKING_FIELD name:STR3 type:kotlin.String visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
$this: CALL 'public final fun <get-STR1> (): kotlin.String declared in <root>' type=kotlin.String origin=null
other: CALL 'public final fun <get-STR2> (): kotlin.String declared in <root>' type=kotlin.String origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-STR3> visibility:public modality:FINAL <> () returnType:kotlin.String
correspondingProperty: PROPERTY name:STR3 visibility:public modality:FINAL [const,val]
@@ -188,6 +188,7 @@ FILE fqName:<root> fileName:/constructor.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (x: kotlin.Int) [primary] declared in <root>.Test4'
<T>: <none>
x: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'x: kotlin.Int declared in <root>.Test4.<init>' type=kotlin.Int origin=null
other: GET_VAR 'y: kotlin.Int declared in <root>.Test4.<init>' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
@@ -36,7 +36,8 @@ FILE fqName:<root> fileName:/differentReceivers.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun provideDelegate (host: kotlin.Any?, p: kotlin.Any): kotlin.String declared in <root>'
CALL 'public final fun <get-value> (): kotlin.String declared in <root>.MyClass' type=kotlin.String origin=null
FUN name:getValue visibility:public modality:FINAL <> (receiver:kotlin.Any?, p:kotlin.Any) returnType:kotlin.String
$this: ERROR_CALL 'Unresolved reference: this#' type=<root>.MyClass
FUN name:getValue visibility:public modality:FINAL <> (receiver:kotlin.Any?, p:kotlin.Any) returnType:kotlin.String
VALUE_PARAMETER name:receiver index:0 type:kotlin.Any?
VALUE_PARAMETER name:p index:1 type:kotlin.Any
BLOCK_BODY
@@ -36,7 +36,8 @@ FILE fqName:<root> fileName:/localDifferentReceivers.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun provideDelegate (host: kotlin.Any?, p: kotlin.Any): kotlin.String declared in <root>'
CALL 'public final fun <get-value> (): kotlin.String declared in <root>.MyClass' type=kotlin.String origin=null
FUN name:getValue visibility:public modality:FINAL <> (receiver:kotlin.Any?, p:kotlin.Any) returnType:kotlin.String
$this: ERROR_CALL 'Unresolved reference: this#' type=<root>.MyClass
FUN name:getValue visibility:public modality:FINAL <> (receiver:kotlin.Any?, p:kotlin.Any) returnType:kotlin.String
VALUE_PARAMETER name:receiver index:0 type:kotlin.Any?
VALUE_PARAMETER name:p index:1 type:kotlin.Any
BLOCK_BODY
@@ -30,6 +30,7 @@ FILE fqName:<root> fileName:/memberExtension.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun getValue (receiver: kotlin.String, p: kotlin.Any): kotlin.String declared in <root>.Host.StringDelegate'
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
$this: GET_VAR 'receiver: kotlin.String declared in <root>.Host.StringDelegate.getValue' type=kotlin.String origin=null
other: CALL 'public final fun <get-s> (): kotlin.String declared in <root>.Host.StringDelegate' type=kotlin.String origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
@@ -65,7 +66,8 @@ FILE fqName:<root> fileName:/memberExtension.kt
FIELD PROPERTY_BACKING_FIELD name:ok type:IrErrorType visibility:public [final]
EXPRESSION_BODY
CALL 'public final fun <get-plusK> (): IrErrorType declared in <root>.Host' type=IrErrorType origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-ok> visibility:public modality:FINAL <> ($this:<root>.Host) returnType:IrErrorType
$this: CONST String type=kotlin.String value="O"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-ok> visibility:public modality:FINAL <> ($this:<root>.Host) returnType:IrErrorType
correspondingProperty: PROPERTY name:ok visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
BLOCK_BODY
@@ -17,6 +17,14 @@ FILE fqName:<root> fileName:/arrayAccess.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test (a: kotlin.IntArray): kotlin.Int declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun get (index: kotlin.Int): kotlin.Int declared in kotlin.IntArray' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.IntArray declared in <root>.test' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=0
other: CALL 'public final fun get (index: kotlin.Int): kotlin.Int declared in kotlin.IntArray' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.IntArray declared in <root>.test' type=kotlin.IntArray origin=null
index: CALL 'public final fun <get-p> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
other: CALL 'public final fun get (index: kotlin.Int): kotlin.Int declared in kotlin.IntArray' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.IntArray declared in <root>.test' type=kotlin.IntArray origin=null
index: CALL 'public final fun foo (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
@@ -7,6 +7,7 @@ FILE fqName:<root> fileName:/arrayAssignment.kt
CONST Int type=kotlin.Int value=2
CONST Int type=kotlin.Int value=3
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit declared in kotlin.IntArray' type=kotlin.Unit origin=null
$this: GET_VAR 'val x: kotlin.IntArray [val] declared in <root>.test' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=1
value: CONST Int type=kotlin.Int value=0
FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Int
@@ -16,6 +17,10 @@ FILE fqName:<root> fileName:/arrayAssignment.kt
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit declared in kotlin.IntArray' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Cannot bind 3 arguments to intArrayOf call with 1 parameters' type=kotlin.IntArray
CONST Int type=kotlin.Int value=1
CONST Int type=kotlin.Int value=2
CONST Int type=kotlin.Int value=3
index: CALL 'public final fun foo (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1
@@ -56,9 +56,14 @@ FILE fqName:<root> fileName:/arrayAugmentedAssignment1.kt
BLOCK_BODY
VAR name:<unary> type:kotlin.Int [val]
CALL 'public final fun get (index: kotlin.Int): kotlin.Int declared in kotlin.IntArray' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-x> (): kotlin.IntArray declared in <root>.C' type=kotlin.IntArray origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.testMember' type=<root>.C origin=null
index: CONST Int type=kotlin.Int value=0
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit declared in kotlin.IntArray' type=kotlin.Unit origin=null
$this: CALL 'public final fun <get-x> (): kotlin.IntArray declared in <root>.C' type=kotlin.IntArray origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.testMember' type=<root>.C origin=null
index: CONST Int type=kotlin.Int value=0
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testMember' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testMember' type=kotlin.Int origin=null
@@ -1,40 +0,0 @@
FILE fqName:<root> fileName:/booleanOperators.kt
FUN name:test1 visibility:public modality:FINAL <> (a:kotlin.Boolean, b:kotlin.Boolean) returnType:kotlin.Boolean
VALUE_PARAMETER name:a index:0 type:kotlin.Boolean
VALUE_PARAMETER name:b index:1 type:kotlin.Boolean
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (a: kotlin.Boolean, b: kotlin.Boolean): kotlin.Boolean declared in <root>'
WHEN type=kotlin.Boolean origin=ANDAND
BRANCH
if: GET_VAR 'a: kotlin.Boolean declared in <root>.test1' type=kotlin.Boolean origin=null
then: GET_VAR 'b: kotlin.Boolean declared in <root>.test1' type=kotlin.Boolean origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
FUN name:test2 visibility:public modality:FINAL <> (a:kotlin.Boolean, b:kotlin.Boolean) returnType:kotlin.Boolean
VALUE_PARAMETER name:a index:0 type:kotlin.Boolean
VALUE_PARAMETER name:b index:1 type:kotlin.Boolean
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (a: kotlin.Boolean, b: kotlin.Boolean): kotlin.Boolean declared in <root>'
WHEN type=kotlin.Boolean origin=OROR
BRANCH
if: GET_VAR 'a: kotlin.Boolean declared in <root>.test2' type=kotlin.Boolean origin=null
then: CONST Boolean type=kotlin.Boolean value=true
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'b: kotlin.Boolean declared in <root>.test2' type=kotlin.Boolean origin=null
FUN name:test1x visibility:public modality:FINAL <> (a:kotlin.Boolean, b:kotlin.Boolean) returnType:kotlin.Boolean
VALUE_PARAMETER name:a index:0 type:kotlin.Boolean
VALUE_PARAMETER name:b index:1 type:kotlin.Boolean
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1x (a: kotlin.Boolean, b: kotlin.Boolean): kotlin.Boolean declared in <root>'
CALL 'public final fun and (other: kotlin.Boolean): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
other: GET_VAR 'b: kotlin.Boolean declared in <root>.test1x' type=kotlin.Boolean origin=null
FUN name:test2x visibility:public modality:FINAL <> (a:kotlin.Boolean, b:kotlin.Boolean) returnType:kotlin.Boolean
VALUE_PARAMETER name:a index:0 type:kotlin.Boolean
VALUE_PARAMETER name:b index:1 type:kotlin.Boolean
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2x (a: kotlin.Boolean, b: kotlin.Boolean): kotlin.Boolean declared in <root>'
CALL 'public final fun or (other: kotlin.Boolean): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
other: GET_VAR 'b: kotlin.Boolean declared in <root>.test2x' type=kotlin.Boolean origin=null
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
fun test1(a: Boolean, b: Boolean) = a && b
fun test2(a: Boolean, b: Boolean) = a || b
@@ -47,7 +47,8 @@ FILE fqName:<root> fileName:/boundCallableReferences.kt
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun <get-bar> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
$this: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=IrErrorType origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.Int declared in <root>'
@@ -46,7 +46,9 @@ FILE fqName:<root> fileName:/callableRefToGenericMember.kt
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun <get-bar> (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
$this: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=IrErrorType origin=null
<class: T>: <none>
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.Int declared in <root>'
@@ -47,7 +47,8 @@ FILE fqName:test fileName:/callableReferenceToImportedFromObject.kt
FIELD PROPERTY_BACKING_FIELD name:test1a type:kotlin.String visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun <get-a> (): kotlin.String declared in test.Foo' type=kotlin.String origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1a> visibility:public modality:FINAL <> () returnType:kotlin.String
$this: ERROR_CALL 'Unresolved reference: R|test/Foo|' type=test.Foo
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1a> visibility:public modality:FINAL <> () returnType:kotlin.String
correspondingProperty: PROPERTY name:test1a visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test1a> (): kotlin.String declared in test'
@@ -16,11 +16,14 @@ FILE fqName:<root> fileName:/coercionToUnit.kt
VALUE_PARAMETER name:mc index:0 type:kotlin.collections.MutableCollection<kotlin.String>
BLOCK_BODY
CALL 'public abstract fun add (element: kotlin.String): kotlin.Boolean declared in kotlin.collections.MutableCollection' type=kotlin.Boolean origin=null
$this: GET_VAR 'mc: kotlin.collections.MutableCollection<kotlin.String> declared in <root>.test2' type=kotlin.collections.MutableCollection<kotlin.String> origin=null
element: CONST String type=kotlin.String value=""
FUN name:test3 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public open fun println (x: kotlin.String?): kotlin.Unit declared in java.io.PrintStream' type=kotlin.Unit origin=null
$this: ERROR_CALL 'No getter found for R|java/lang/System.out|' type=java.io.PrintStream?
x: CONST String type=kotlin.String value="Hello,"
CALL 'public open fun println (x: kotlin.String?): kotlin.Unit declared in java.io.PrintStream' type=kotlin.Unit origin=null
$this: ERROR_CALL 'No getter found for R|java/lang/System.out|' type=java.io.PrintStream?
x: CONST String type=kotlin.String value="world!"
@@ -120,35 +120,44 @@ FILE fqName:<root> fileName:/complexAugmentedAssignment.kt
CONST Int type=kotlin.Int value=0
VAR name:<unary> type:kotlin.Int [val]
CALL 'public final fun get (index: kotlin.Int): kotlin.Int declared in kotlin.IntArray' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.IntArray declared in <root>.test1' type=kotlin.IntArray origin=null
index: BLOCK type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val]
GET_VAR 'var i: kotlin.Int [var] declared in <root>.test1' type=kotlin.Int origin=null
ERROR_CALL 'Unresolved reference: R|<local>/i|' type=IrErrorType
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test1' type=kotlin.Int origin=null
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit declared in kotlin.IntArray' type=kotlin.Unit origin=null
$this: GET_VAR 'a: kotlin.IntArray declared in <root>.test1' type=kotlin.IntArray origin=null
index: BLOCK type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val]
GET_VAR 'var i: kotlin.Int [var] declared in <root>.test1' type=kotlin.Int origin=null
ERROR_CALL 'Unresolved reference: R|<local>/i|' type=IrErrorType
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test1' type=kotlin.Int origin=null
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test1' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test1' type=kotlin.Int origin=null
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
VAR name:<unary> type:kotlin.Int [val]
CALL 'public final fun <get-x1> (): kotlin.Int declared in <root>.X1' type=kotlin.Int origin=null
$this: ERROR_CALL 'Unresolved reference: R|/X1|' type=<root>.X1
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x1 type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val]
CALL 'public final fun <get-x2> (): kotlin.Int declared in <root>.X1.X2' type=kotlin.Int origin=null
$this: ERROR_CALL 'Unresolved reference: R|/X1.X2|' type=<root>.X1.X2
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x2 type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val]
CALL 'public final fun <get-x3> (): kotlin.Int declared in <root>.X1.X2.X3' type=kotlin.Int origin=null
$this: ERROR_CALL 'Unresolved reference: R|/X1.X2.X3|' type=<root>.X1.X2.X3
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x3 type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
@@ -203,7 +212,8 @@ FILE fqName:<root> fileName:/complexAugmentedAssignment.kt
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:s type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CALL 'public final fun <get-s> (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
$this: GET_VAR 'b: <root>.B declared in <root>.Host.plusAssign' type=<root>.B origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
@@ -53,6 +53,7 @@ FILE fqName:<root> fileName:/destructuring1.kt
ERROR_CALL 'Unresolved reference: R|/A|' type=<root>.A
VAR name:x type:kotlin.Int [val]
CALL 'public final fun component1 (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=null
VAR name:y type:kotlin.Int [val]
$this: GET_VAR 'val <destruct>: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
VAR name:y type:kotlin.Int [val]
CALL 'public final fun component2 (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR 'val <destruct>: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
@@ -58,8 +58,10 @@ FILE fqName:<root> fileName:/destructuringWithUnderscore.kt
ERROR_CALL 'Unresolved reference: R|/A|' type=<root>.A
VAR name:x type:kotlin.Int [val]
CALL 'public final fun component1 (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=null
VAR name:_ type:kotlin.Int [val]
$this: GET_VAR 'val <destruct>: <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 declared in <root>.B' type=kotlin.Int origin=null
VAR name:z type:kotlin.Int [val]
$this: GET_VAR 'val <destruct>: <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 declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR 'val <destruct>: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
@@ -5,6 +5,7 @@ FILE fqName:<root> fileName:/floatingPointCompareTo.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1d (x: kotlin.Double, y: kotlin.Double): kotlin.Int declared in <root>'
CALL 'public open fun compareTo (other: kotlin.Double): kotlin.Int declared in kotlin.Double' type=kotlin.Int origin=null
$this: GET_VAR 'x: kotlin.Double declared in <root>.test1d' type=kotlin.Double origin=null
other: GET_VAR 'y: kotlin.Double declared in <root>.test1d' type=kotlin.Double origin=null
FUN name:test2d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Double
@@ -51,6 +52,7 @@ FILE fqName:<root> fileName:/floatingPointCompareTo.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1f (x: kotlin.Float, y: kotlin.Float): kotlin.Int declared in <root>'
CALL 'public open fun compareTo (other: kotlin.Float): kotlin.Int declared in kotlin.Float' type=kotlin.Int origin=null
$this: GET_VAR 'x: kotlin.Float declared in <root>.test1f' type=kotlin.Float origin=null
other: GET_VAR 'y: kotlin.Float declared in <root>.test1f' type=kotlin.Float origin=null
FUN name:test2f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Float
@@ -5,6 +5,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1d (x: kotlin.Double, y: kotlin.Double): kotlin.Boolean declared in <root>'
CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Double declared in <root>.test1d' type=kotlin.Double origin=null
other: GET_VAR 'y: kotlin.Double declared in <root>.test1d' type=kotlin.Double origin=null
FUN name:test2d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Double?) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Double
@@ -12,6 +13,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2d (x: kotlin.Double, y: kotlin.Double?): kotlin.Boolean declared in <root>'
CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Double declared in <root>.test2d' type=kotlin.Double origin=null
other: GET_VAR 'y: kotlin.Double? declared in <root>.test2d' type=kotlin.Double? origin=null
FUN name:test3d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Double
@@ -19,6 +21,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3d (x: kotlin.Double, y: kotlin.Any): kotlin.Boolean declared in <root>'
CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Double declared in <root>.test3d' type=kotlin.Double origin=null
other: GET_VAR 'y: kotlin.Any declared in <root>.test3d' type=kotlin.Any origin=null
FUN name:test4d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Number) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Double
@@ -26,6 +29,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4d (x: kotlin.Double, y: kotlin.Number): kotlin.Boolean declared in <root>'
CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Double declared in <root>.test4d' type=kotlin.Double origin=null
other: GET_VAR 'y: kotlin.Number declared in <root>.test4d' type=kotlin.Number origin=null
FUN name:test5d visibility:public modality:FINAL <> (x:kotlin.Double, y:kotlin.Any) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Double
@@ -37,6 +41,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Double
GET_VAR 'y: kotlin.Any declared in <root>.test5d' type=kotlin.Any origin=null
then: CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Double declared in <root>.test5d' type=kotlin.Double origin=null
other: GET_VAR 'y: kotlin.Any declared in <root>.test5d' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
@@ -58,6 +63,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
then: CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Any declared in <root>.test6d' type=kotlin.Any origin=null
other: GET_VAR 'y: kotlin.Any declared in <root>.test6d' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
@@ -68,6 +74,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1f (x: kotlin.Float, y: kotlin.Float): kotlin.Boolean declared in <root>'
CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Float declared in <root>.test1f' type=kotlin.Float origin=null
other: GET_VAR 'y: kotlin.Float declared in <root>.test1f' type=kotlin.Float origin=null
FUN name:test2f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Float?) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Float
@@ -75,6 +82,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2f (x: kotlin.Float, y: kotlin.Float?): kotlin.Boolean declared in <root>'
CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Float declared in <root>.test2f' type=kotlin.Float origin=null
other: GET_VAR 'y: kotlin.Float? declared in <root>.test2f' type=kotlin.Float? origin=null
FUN name:test3f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Float
@@ -82,6 +90,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3f (x: kotlin.Float, y: kotlin.Any): kotlin.Boolean declared in <root>'
CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Float declared in <root>.test3f' type=kotlin.Float origin=null
other: GET_VAR 'y: kotlin.Any declared in <root>.test3f' type=kotlin.Any origin=null
FUN name:test4f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Number) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Float
@@ -89,6 +98,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4f (x: kotlin.Float, y: kotlin.Number): kotlin.Boolean declared in <root>'
CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Float declared in <root>.test4f' type=kotlin.Float origin=null
other: GET_VAR 'y: kotlin.Number declared in <root>.test4f' type=kotlin.Number origin=null
FUN name:test5f visibility:public modality:FINAL <> (x:kotlin.Float, y:kotlin.Any) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Float
@@ -100,6 +110,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Float
GET_VAR 'y: kotlin.Any declared in <root>.test5f' type=kotlin.Any origin=null
then: CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Float declared in <root>.test5f' type=kotlin.Float origin=null
other: GET_VAR 'y: kotlin.Any declared in <root>.test5f' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
@@ -121,6 +132,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
then: CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Any declared in <root>.test6f' type=kotlin.Any origin=null
other: GET_VAR 'y: kotlin.Any declared in <root>.test6f' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
@@ -142,6 +154,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
then: CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Any declared in <root>.testFD' type=kotlin.Any origin=null
other: GET_VAR 'y: kotlin.Any declared in <root>.testFD' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
@@ -163,6 +176,7 @@ FILE fqName:<root> fileName:/floatingPointEquals.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
then: CALL 'public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.Any declared in <root>.testDF' type=kotlin.Any origin=null
other: GET_VAR 'y: kotlin.Any declared in <root>.testDF' type=kotlin.Any origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
@@ -23,6 +23,7 @@ FILE fqName:<root> fileName:/whenByFloatingPoint.kt
GET_VAR 'x: kotlin.Any declared in <root>.testSmartCastInWhenSubject' type=kotlin.Any origin=null
then: RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenSubject (x: kotlin.Any): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenSubject (x: kotlin.Any): kotlin.Int declared in <root>'
BLOCK type=kotlin.Int origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp1_subject type:kotlin.Any [val]
@@ -45,6 +46,7 @@ FILE fqName:<root> fileName:/whenByFloatingPoint.kt
GET_VAR 'y: kotlin.Any declared in <root>.testSmartCastInWhenCondition' type=kotlin.Any origin=null
then: RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenCondition (x: kotlin.Double, y: kotlin.Any): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenCondition (x: kotlin.Double, y: kotlin.Any): kotlin.Int declared in <root>'
BLOCK type=kotlin.Int origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp2_subject type:kotlin.Double [val]
@@ -68,6 +70,7 @@ FILE fqName:<root> fileName:/whenByFloatingPoint.kt
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double
GET_VAR 'val tmp3_subject: kotlin.Any [val] declared in <root>.testSmartCastInWhenConditionInBranch' type=kotlin.Any origin=null
then: CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
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: GET_VAR 'val tmp3_subject: kotlin.Any [val] declared in <root>.testSmartCastInWhenConditionInBranch' type=kotlin.Any origin=null
@@ -86,12 +89,14 @@ FILE fqName:<root> fileName:/whenByFloatingPoint.kt
GET_VAR 'x: kotlin.Any declared in <root>.testSmartCastToDifferentTypes' type=kotlin.Any origin=null
then: RETURN type=kotlin.Nothing from='public final fun testSmartCastToDifferentTypes (x: kotlin.Any, y: kotlin.Any): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
WHEN type=kotlin.Int origin=IF
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Float
GET_VAR 'y: kotlin.Any declared in <root>.testSmartCastToDifferentTypes' type=kotlin.Any origin=null
then: RETURN type=kotlin.Nothing from='public final fun testSmartCastToDifferentTypes (x: kotlin.Any, y: kotlin.Any): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
RETURN type=kotlin.Nothing from='public final fun testSmartCastToDifferentTypes (x: kotlin.Any, y: kotlin.Any): kotlin.Int declared in <root>'
BLOCK type=kotlin.Int origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp4_subject type:kotlin.Any [val]
+14 -3
View File
@@ -6,23 +6,29 @@ FILE fqName:<root> fileName:/for.kt
GET_VAR 'ss: kotlin.collections.List<kotlin.String> declared in <root>.testEmpty' type=kotlin.collections.List<kotlin.String> origin=null
VAR name:<iterator> type:kotlin.collections.Iterator<kotlin.String> [val]
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<kotlin.String> declared in kotlin.collections.List' type=kotlin.collections.Iterator<kotlin.String> origin=null
$this: GET_VAR 'val <range>: kotlin.collections.List<kotlin.String> [val] declared in <root>.testEmpty' type=kotlin.collections.List<kotlin.String> origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testEmpty' type=kotlin.collections.Iterator<kotlin.String> origin=null
body: BLOCK type=kotlin.Unit origin=null
VAR name:s type:kotlin.String [val]
CALL 'public abstract fun next (): kotlin.String declared in kotlin.collections.Iterator' type=kotlin.String origin=null
FUN name:testIterable visibility:public modality:FINAL <> (ss:kotlin.collections.List<kotlin.String>) returnType:kotlin.Unit
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testEmpty' type=kotlin.collections.Iterator<kotlin.String> origin=null
FUN name:testIterable visibility:public modality:FINAL <> (ss:kotlin.collections.List<kotlin.String>) returnType:kotlin.Unit
VALUE_PARAMETER name:ss index:0 type:kotlin.collections.List<kotlin.String>
BLOCK_BODY
VAR name:<range> type:kotlin.collections.List<kotlin.String> [val]
GET_VAR 'ss: kotlin.collections.List<kotlin.String> declared in <root>.testIterable' type=kotlin.collections.List<kotlin.String> origin=null
VAR name:<iterator> type:kotlin.collections.Iterator<kotlin.String> [val]
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<kotlin.String> declared in kotlin.collections.List' type=kotlin.collections.Iterator<kotlin.String> origin=null
$this: GET_VAR 'val <range>: kotlin.collections.List<kotlin.String> [val] declared in <root>.testIterable' type=kotlin.collections.List<kotlin.String> origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testIterable' type=kotlin.collections.Iterator<kotlin.String> origin=null
body: BLOCK type=kotlin.Unit origin=null
VAR name:s type:kotlin.String [val]
CALL 'public abstract fun next (): kotlin.String declared in kotlin.collections.Iterator' type=kotlin.String origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testIterable' type=kotlin.collections.Iterator<kotlin.String> origin=null
CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit [inline] declared in kotlin.io' type=kotlin.Unit origin=null
message: GET_VAR 'val s: kotlin.String [val] declared in <root>.testIterable' type=kotlin.String origin=null
FUN name:testDestructuring visibility:public modality:FINAL <> (pp:kotlin.collections.List<kotlin.Pair<kotlin.Int, kotlin.String>>) returnType:kotlin.Unit
@@ -32,15 +38,20 @@ FILE fqName:<root> fileName:/for.kt
GET_VAR 'pp: kotlin.collections.List<kotlin.Pair<kotlin.Int, kotlin.String>> declared in <root>.testDestructuring' type=kotlin.collections.List<kotlin.Pair<kotlin.Int, kotlin.String>> origin=null
VAR name:<iterator> type:kotlin.collections.Iterator<kotlin.Pair<kotlin.Int, kotlin.String>> [val]
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<kotlin.Pair<kotlin.Int, kotlin.String>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<kotlin.Pair<kotlin.Int, kotlin.String>> origin=null
$this: GET_VAR 'val <range>: kotlin.collections.List<kotlin.Pair<kotlin.Int, kotlin.String>> [val] declared in <root>.testDestructuring' type=kotlin.collections.List<kotlin.Pair<kotlin.Int, kotlin.String>> origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.Pair<kotlin.Int, kotlin.String>> [val] declared in <root>.testDestructuring' type=kotlin.collections.Iterator<kotlin.Pair<kotlin.Int, kotlin.String>> origin=null
body: BLOCK type=kotlin.Unit origin=null
VAR name:<destruct> type:kotlin.Pair<kotlin.Int, kotlin.String> [val]
CALL 'public abstract fun next (): kotlin.Pair<kotlin.Int, kotlin.String> declared in kotlin.collections.Iterator' type=kotlin.Pair<kotlin.Int, kotlin.String> origin=null
VAR name:i type:kotlin.Int [val]
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.Pair<kotlin.Int, kotlin.String>> [val] declared in <root>.testDestructuring' type=kotlin.collections.Iterator<kotlin.Pair<kotlin.Int, kotlin.String>> origin=null
VAR name:i type:kotlin.Int [val]
CALL 'public final fun component1 (): kotlin.Int declared in kotlin.Pair' type=kotlin.Int origin=null
VAR name:s type:kotlin.String [val]
$this: GET_VAR 'val <destruct>: kotlin.Pair<kotlin.Int, kotlin.String> [val] declared in <root>.testDestructuring' type=kotlin.Pair<kotlin.Int, kotlin.String> origin=null
VAR name:s type:kotlin.String [val]
CALL 'public final fun component2 (): kotlin.String declared in kotlin.Pair' type=kotlin.String origin=null
$this: GET_VAR 'val <destruct>: kotlin.Pair<kotlin.Int, kotlin.String> [val] declared in <root>.testDestructuring' type=kotlin.Pair<kotlin.Int, kotlin.String> 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>.testDestructuring' type=kotlin.Int origin=null
CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit [inline] declared in kotlin.io' type=kotlin.Unit origin=null
@@ -6,11 +6,14 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
GET_VAR 'ss: kotlin.collections.List<kotlin.String> declared in <root>.testForBreak1' type=kotlin.collections.List<kotlin.String> origin=null
VAR name:<iterator> type:kotlin.collections.Iterator<kotlin.String> [val]
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<kotlin.String> declared in kotlin.collections.List' type=kotlin.collections.Iterator<kotlin.String> origin=null
$this: GET_VAR 'val <range>: kotlin.collections.List<kotlin.String> [val] declared in <root>.testForBreak1' type=kotlin.collections.List<kotlin.String> origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForBreak1' type=kotlin.collections.Iterator<kotlin.String> origin=null
body: BLOCK type=kotlin.Nothing origin=null
VAR name:s type:kotlin.String [val]
CALL 'public abstract fun next (): kotlin.String declared in kotlin.collections.Iterator' type=kotlin.String origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForBreak1' type=kotlin.collections.Iterator<kotlin.String> origin=null
BREAK label=null loop.label=null
FUN name:testForBreak2 visibility:public modality:FINAL <> (ss:kotlin.collections.List<kotlin.String>) returnType:kotlin.Unit
VALUE_PARAMETER name:ss index:0 type:kotlin.collections.List<kotlin.String>
@@ -19,20 +22,26 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
GET_VAR 'ss: kotlin.collections.List<kotlin.String> declared in <root>.testForBreak2' type=kotlin.collections.List<kotlin.String> origin=null
VAR name:<iterator> type:kotlin.collections.Iterator<kotlin.String> [val]
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<kotlin.String> declared in kotlin.collections.List' type=kotlin.collections.Iterator<kotlin.String> origin=null
$this: GET_VAR 'val <range>: kotlin.collections.List<kotlin.String> [val] declared in <root>.testForBreak2' type=kotlin.collections.List<kotlin.String> origin=null
WHILE label=OUTER origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForBreak2' type=kotlin.collections.Iterator<kotlin.String> origin=null
body: BLOCK type=kotlin.Nothing origin=null
VAR name:s1 type:kotlin.String [val]
CALL 'public abstract fun next (): kotlin.String declared in kotlin.collections.Iterator' type=kotlin.String origin=null
VAR name:<range> type:kotlin.collections.List<kotlin.String> [val]
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForBreak2' type=kotlin.collections.Iterator<kotlin.String> origin=null
VAR name:<range> type:kotlin.collections.List<kotlin.String> [val]
GET_VAR 'ss: kotlin.collections.List<kotlin.String> declared in <root>.testForBreak2' type=kotlin.collections.List<kotlin.String> origin=null
VAR name:<iterator> type:kotlin.collections.Iterator<kotlin.String> [val]
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<kotlin.String> declared in kotlin.collections.List' type=kotlin.collections.Iterator<kotlin.String> origin=null
$this: GET_VAR 'val <range>: kotlin.collections.List<kotlin.String> [val] declared in <root>.testForBreak2' type=kotlin.collections.List<kotlin.String> origin=null
WHILE label=INNER origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForBreak2' type=kotlin.collections.Iterator<kotlin.String> origin=null
body: BLOCK type=kotlin.Nothing origin=null
VAR name:s2 type:kotlin.String [val]
CALL 'public abstract fun next (): kotlin.String declared in kotlin.collections.Iterator' type=kotlin.String origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForBreak2' type=kotlin.collections.Iterator<kotlin.String> origin=null
BREAK label=OUTER loop.label=OUTER
BREAK label=INNER loop.label=INNER
BREAK label=null loop.label=INNER
@@ -44,11 +53,14 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
GET_VAR 'ss: kotlin.collections.List<kotlin.String> declared in <root>.testForContinue1' type=kotlin.collections.List<kotlin.String> origin=null
VAR name:<iterator> type:kotlin.collections.Iterator<kotlin.String> [val]
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<kotlin.String> declared in kotlin.collections.List' type=kotlin.collections.Iterator<kotlin.String> origin=null
$this: GET_VAR 'val <range>: kotlin.collections.List<kotlin.String> [val] declared in <root>.testForContinue1' type=kotlin.collections.List<kotlin.String> origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForContinue1' type=kotlin.collections.Iterator<kotlin.String> origin=null
body: BLOCK type=kotlin.Nothing origin=null
VAR name:s type:kotlin.String [val]
CALL 'public abstract fun next (): kotlin.String declared in kotlin.collections.Iterator' type=kotlin.String origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForContinue1' type=kotlin.collections.Iterator<kotlin.String> origin=null
CONTINUE label=null loop.label=null
FUN name:testForContinue2 visibility:public modality:FINAL <> (ss:kotlin.collections.List<kotlin.String>) returnType:kotlin.Unit
VALUE_PARAMETER name:ss index:0 type:kotlin.collections.List<kotlin.String>
@@ -57,20 +69,26 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
GET_VAR 'ss: kotlin.collections.List<kotlin.String> declared in <root>.testForContinue2' type=kotlin.collections.List<kotlin.String> origin=null
VAR name:<iterator> type:kotlin.collections.Iterator<kotlin.String> [val]
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<kotlin.String> declared in kotlin.collections.List' type=kotlin.collections.Iterator<kotlin.String> origin=null
$this: GET_VAR 'val <range>: kotlin.collections.List<kotlin.String> [val] declared in <root>.testForContinue2' type=kotlin.collections.List<kotlin.String> origin=null
WHILE label=OUTER origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForContinue2' type=kotlin.collections.Iterator<kotlin.String> origin=null
body: BLOCK type=kotlin.Nothing origin=null
VAR name:s1 type:kotlin.String [val]
CALL 'public abstract fun next (): kotlin.String declared in kotlin.collections.Iterator' type=kotlin.String origin=null
VAR name:<range> type:kotlin.collections.List<kotlin.String> [val]
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForContinue2' type=kotlin.collections.Iterator<kotlin.String> origin=null
VAR name:<range> type:kotlin.collections.List<kotlin.String> [val]
GET_VAR 'ss: kotlin.collections.List<kotlin.String> declared in <root>.testForContinue2' type=kotlin.collections.List<kotlin.String> origin=null
VAR name:<iterator> type:kotlin.collections.Iterator<kotlin.String> [val]
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<kotlin.String> declared in kotlin.collections.List' type=kotlin.collections.Iterator<kotlin.String> origin=null
$this: GET_VAR 'val <range>: kotlin.collections.List<kotlin.String> [val] declared in <root>.testForContinue2' type=kotlin.collections.List<kotlin.String> origin=null
WHILE label=INNER origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForContinue2' type=kotlin.collections.Iterator<kotlin.String> origin=null
body: BLOCK type=kotlin.Nothing origin=null
VAR name:s2 type:kotlin.String [val]
CALL 'public abstract fun next (): kotlin.String declared in kotlin.collections.Iterator' type=kotlin.String origin=null
$this: GET_VAR 'val <iterator>: kotlin.collections.Iterator<kotlin.String> [val] declared in <root>.testForContinue2' type=kotlin.collections.Iterator<kotlin.String> origin=null
CONTINUE label=OUTER loop.label=OUTER
CONTINUE label=INNER loop.label=INNER
CONTINUE label=null loop.label=INNER
@@ -79,6 +79,7 @@ FILE fqName:<root> fileName:/forWithImplicitReceivers.kt
CALL 'public final fun <get-value> (): kotlin.Int declared in <root>.IntCell' type=kotlin.Int origin=null
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CALL 'public final fun dec (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.IReceiver.next' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.IReceiver.next' type=kotlin.Int origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
@@ -99,11 +100,14 @@ FILE fqName:<root> fileName:/forWithImplicitReceivers.kt
ERROR_CALL 'Unresolved reference: R|/FiveTimes|' type=<root>.FiveTimes
VAR name:<iterator> type:<root>.IntCell [val]
CALL 'public open fun iterator (): <root>.IntCell declared in <root>.IReceiver' type=<root>.IntCell origin=null
$this: GET_VAR 'val <range>: <root>.FiveTimes [val] declared in <root>.test' type=<root>.FiveTimes origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public open fun hasNext (): kotlin.Boolean declared in <root>.IReceiver' type=kotlin.Boolean origin=null
$this: GET_VAR 'val <iterator>: <root>.IntCell [val] declared in <root>.test' type=<root>.IntCell origin=null
body: BLOCK type=kotlin.Unit origin=null
VAR name:i type:kotlin.Int [val]
CALL 'public open fun next (): kotlin.Int declared in <root>.IReceiver' type=kotlin.Int origin=null
$this: GET_VAR 'val <iterator>: <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
@@ -4,6 +4,7 @@ FILE fqName:<root> fileName:/genericConstructorCallWithTypeArguments.kt
RETURN type=kotlin.Nothing from='public final fun testSimple (): IrErrorType declared in <root>'
ERROR_CALL 'Unresolved reference: <Inapplicable(INAPPLICABLE): [/Box.Box]>#' type=IrErrorType
CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=2
other: CONST Int type=kotlin.Int value=3
FUN name:testArray visibility:public modality:FINAL <T> (n:kotlin.Int, block:kotlin.Function0<T of <root>.testArray>) returnType:kotlin.Array<T of <root>.testArray> [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
@@ -17,6 +17,7 @@ FILE fqName:<root> fileName:/ifElseIf.kt
arg0: GET_VAR 'i: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
arg1: CONST Int type=kotlin.Int value=0
then: CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Int type=kotlin.Int value=0
+9 -2
View File
@@ -5,6 +5,7 @@ FILE fqName:<root> fileName:/in.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (a: kotlin.Any, x: kotlin.collections.Collection<kotlin.Any>): kotlin.Boolean declared in <root>'
CALL 'public abstract fun contains (element: kotlin.Any): kotlin.Boolean declared in kotlin.collections.Collection' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.collections.Collection<kotlin.Any> declared in <root>.test1' type=kotlin.collections.Collection<kotlin.Any> origin=null
element: GET_VAR 'a: kotlin.Any declared in <root>.test1' type=kotlin.Any origin=null
FUN name:test2 visibility:public modality:FINAL <> (a:kotlin.Any, x:kotlin.collections.Collection<kotlin.Any>) returnType:kotlin.Boolean
VALUE_PARAMETER name:a index:0 type:kotlin.Any
@@ -12,13 +13,17 @@ FILE fqName:<root> fileName:/in.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (a: kotlin.Any, x: kotlin.collections.Collection<kotlin.Any>): kotlin.Boolean declared in <root>'
CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
FUN name:test3 visibility:public modality:FINAL <T> (a:T of <root>.test3, x:kotlin.collections.Collection<T of <root>.test3>) returnType:kotlin.Boolean
$this: CALL 'public abstract fun contains (element: kotlin.Any): kotlin.Boolean declared in kotlin.collections.Collection' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.collections.Collection<kotlin.Any> declared in <root>.test2' type=kotlin.collections.Collection<kotlin.Any> origin=null
element: GET_VAR 'a: kotlin.Any declared in <root>.test2' type=kotlin.Any origin=null
FUN name:test3 visibility:public modality:FINAL <T> (a:T of <root>.test3, x:kotlin.collections.Collection<T of <root>.test3>) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
VALUE_PARAMETER name:a index:0 type:T of <root>.test3
VALUE_PARAMETER name:x index:1 type:kotlin.collections.Collection<T of <root>.test3>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 <T> (a: T of <root>.test3, x: kotlin.collections.Collection<T of <root>.test3>): kotlin.Boolean declared in <root>'
CALL 'public abstract fun contains (element: T of <root>.test3): kotlin.Boolean declared in kotlin.collections.Collection' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.collections.Collection<T of <root>.test3> declared in <root>.test3' type=kotlin.collections.Collection<T of <root>.test3> origin=null
element: GET_VAR 'a: T of <root>.test3 declared in <root>.test3' type=T of <root>.test3 origin=null
FUN name:test4 visibility:public modality:FINAL <T> (a:T of <root>.test4, x:kotlin.collections.Collection<T of <root>.test4>) returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[]
@@ -27,4 +32,6 @@ FILE fqName:<root> fileName:/in.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4 <T> (a: T of <root>.test4, x: kotlin.collections.Collection<T of <root>.test4>): kotlin.Boolean declared in <root>'
CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
$this: CALL 'public abstract fun contains (element: T of <root>.test4): kotlin.Boolean declared in kotlin.collections.Collection' type=kotlin.Boolean origin=null
$this: GET_VAR 'x: kotlin.collections.Collection<T of <root>.test4> declared in <root>.test4' type=kotlin.collections.Collection<T of <root>.test4> origin=null
element: GET_VAR 'a: T of <root>.test4 declared in <root>.test4' type=T of <root>.test4 origin=null
@@ -66,6 +66,7 @@ FILE fqName:<root> fileName:/incrementDecrement.kt
CALL 'public final fun <get-p> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public [static] ' type=kotlin.Int origin=null
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testPropPrefix' type=kotlin.Int origin=null
CALL 'public final fun <get-p> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
VAR name:p2 type:kotlin.Int [val]
BLOCK type=kotlin.Int origin=null
@@ -73,6 +74,7 @@ FILE fqName:<root> fileName:/incrementDecrement.kt
CALL 'public final fun <get-p> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public [static] ' type=kotlin.Int origin=null
value: CALL 'public final fun dec (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testPropPrefix' type=kotlin.Int origin=null
CALL 'public final fun <get-p> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
FUN name:testPropPostfix visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
@@ -82,6 +84,7 @@ FILE fqName:<root> fileName:/incrementDecrement.kt
CALL 'public final fun <get-p> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public [static] ' type=kotlin.Int origin=null
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testPropPostfix' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testPropPostfix' type=kotlin.Int origin=null
VAR name:p2 type:kotlin.Int [val]
BLOCK type=kotlin.Int origin=null
@@ -89,6 +92,7 @@ FILE fqName:<root> fileName:/incrementDecrement.kt
CALL 'public final fun <get-p> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public [static] ' type=kotlin.Int origin=null
value: CALL 'public final fun dec (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testPropPostfix' type=kotlin.Int origin=null
CALL 'public final fun <get-p> (): kotlin.Int declared in <root>' type=kotlin.Int origin=null
FUN name:testArrayPrefix visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
@@ -96,10 +100,13 @@ FILE fqName:<root> fileName:/incrementDecrement.kt
BLOCK type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val]
CALL 'public final fun get (index: kotlin.Int): kotlin.Int declared in kotlin.IntArray' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-arr> (): kotlin.IntArray declared in <root>' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=0
VAR name:<unary-result> type:kotlin.Int [val]
CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testArrayPrefix' type=kotlin.Int origin=null
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit declared in kotlin.IntArray' type=kotlin.Unit origin=null
$this: CALL 'public final fun <get-arr> (): kotlin.IntArray declared in <root>' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=0
value: GET_VAR 'val <unary-result>: kotlin.Int [val] declared in <root>.testArrayPrefix' type=kotlin.Int origin=null
GET_VAR 'val <unary-result>: kotlin.Int [val] declared in <root>.testArrayPrefix' type=kotlin.Int origin=null
@@ -107,10 +114,13 @@ FILE fqName:<root> fileName:/incrementDecrement.kt
BLOCK type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val]
CALL 'public final fun get (index: kotlin.Int): kotlin.Int declared in kotlin.IntArray' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-arr> (): kotlin.IntArray declared in <root>' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=0
VAR name:<unary-result> type:kotlin.Int [val]
CALL 'public final fun dec (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testArrayPrefix' type=kotlin.Int origin=null
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit declared in kotlin.IntArray' type=kotlin.Unit origin=null
$this: CALL 'public final fun <get-arr> (): kotlin.IntArray declared in <root>' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=0
value: GET_VAR 'val <unary-result>: kotlin.Int [val] declared in <root>.testArrayPrefix' type=kotlin.Int origin=null
GET_VAR 'val <unary-result>: kotlin.Int [val] declared in <root>.testArrayPrefix' type=kotlin.Int origin=null
@@ -120,18 +130,24 @@ FILE fqName:<root> fileName:/incrementDecrement.kt
BLOCK type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val]
CALL 'public final fun get (index: kotlin.Int): kotlin.Int declared in kotlin.IntArray' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-arr> (): kotlin.IntArray declared in <root>' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=0
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit declared in kotlin.IntArray' type=kotlin.Unit origin=null
$this: CALL 'public final fun <get-arr> (): kotlin.IntArray declared in <root>' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=0
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testArrayPostfix' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testArrayPostfix' type=kotlin.Int origin=null
VAR name:a2 type:kotlin.Int [val]
BLOCK type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val]
CALL 'public final fun get (index: kotlin.Int): kotlin.Int declared in kotlin.IntArray' type=kotlin.Int origin=null
$this: CALL 'public final fun <get-arr> (): kotlin.IntArray declared in <root>' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=0
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit declared in kotlin.IntArray' type=kotlin.Unit origin=null
$this: CALL 'public final fun <get-arr> (): kotlin.IntArray declared in <root>' type=kotlin.IntArray origin=null
index: CONST Int type=kotlin.Int value=0
value: CALL 'public final fun dec (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testArrayPostfix' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testArrayPostfix' type=kotlin.Int origin=null
@@ -2,12 +2,14 @@ FILE fqName:<root> fileName:/jvmStaticFieldReference.kt
FUN name:testFun visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public open fun println (x: kotlin.String?): kotlin.Unit declared in java.io.PrintStream' type=kotlin.Unit origin=null
$this: ERROR_CALL 'No getter found for R|java/lang/System.out|' type=java.io.PrintStream?
x: CONST String type=kotlin.String value="testFun"
PROPERTY name:testProp visibility:public modality:FINAL [var]
FUN name:<get-testProp> visibility:public modality:FINAL <> () returnType:kotlin.Any
correspondingProperty: PROPERTY name:testProp visibility:public modality:FINAL [var]
BLOCK_BODY
CALL 'public open fun println (x: kotlin.String?): kotlin.Unit declared in java.io.PrintStream' type=kotlin.Unit origin=null
$this: ERROR_CALL 'No getter found for R|java/lang/System.out|' type=java.io.PrintStream?
x: CONST String type=kotlin.String value="testProp/get"
RETURN type=kotlin.Nothing from='public final fun <get-testProp> (): kotlin.Any declared in <root>'
CONST Int type=kotlin.Any value=42
@@ -16,6 +18,7 @@ FILE fqName:<root> fileName:/jvmStaticFieldReference.kt
VALUE_PARAMETER name:value index:0 type:kotlin.Any
BLOCK_BODY
CALL 'public open fun println (x: kotlin.String?): kotlin.Unit declared in java.io.PrintStream' type=kotlin.Unit origin=null
$this: ERROR_CALL 'No getter found for R|java/lang/System.out|' type=java.io.PrintStream?
x: CONST String type=kotlin.String value="testProp/set"
CLASS CLASS name:TestClass modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestClass
@@ -31,6 +34,7 @@ FILE fqName:<root> fileName:/jvmStaticFieldReference.kt
if: CONST Boolean type=kotlin.Boolean value=true
then: BLOCK type=kotlin.Int origin=null
CALL 'public open fun println (x: kotlin.String?): kotlin.Unit declared in java.io.PrintStream' type=kotlin.Unit origin=null
$this: ERROR_CALL 'No getter found for R|java/lang/System.out|' type=java.io.PrintStream?
x: CONST String type=kotlin.String value="TestClass/test"
CONST Int type=kotlin.Int value=42
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test> visibility:public modality:FINAL <> ($this:<root>.TestClass) returnType:kotlin.Int
@@ -43,6 +47,7 @@ FILE fqName:<root> fileName:/jvmStaticFieldReference.kt
ANONYMOUS_INITIALIZER isStatic=false
BLOCK_BODY
CALL 'public open fun println (x: kotlin.String?): kotlin.Unit declared in java.io.PrintStream' type=kotlin.Unit origin=null
$this: ERROR_CALL 'No getter found for R|java/lang/System.out|' type=java.io.PrintStream?
x: CONST String type=kotlin.String value="TestClass/init"
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
@@ -48,6 +48,7 @@ FILE fqName:<root> fileName:/kt28456.kt
i: CONST Int type=kotlin.Int value=1
j: CONST Int type=kotlin.Int value=2
v: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testPostfixIncrement' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testPostfixIncrement' type=kotlin.Int origin=null
FUN name:testCompoundAssignment visibility:public modality:FINAL <> (a:<root>.A) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
@@ -59,6 +59,7 @@ FILE fqName:<root> fileName:/kt28456b.kt
ERROR_CALL 'Unresolved reference: <Inapplicable(PARAMETER_MAPPING_ERROR): [/set]>#' type=IrErrorType
CONST Int type=kotlin.Int value=1
CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testPostfixIncrement' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.testPostfixIncrement' type=kotlin.Int origin=null
FUN name:testCompoundAssignment visibility:public modality:FINAL <> (a:<root>.A) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
+25 -21
View File
@@ -27,19 +27,23 @@ FILE fqName:<root> fileName:/kt30020.kt
ERROR_CALL 'Unresolved reference: R|/X.xs|' type=IrErrorType
VAR name:<complex-set> type:kotlin.collections.MutableList<kotlin.Any> [val]
CALL 'public abstract fun f (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
$this: GET_VAR 'x: <root>.X declared in <root>.test' type=<root>.X origin=null
ERROR_CALL 'Unresolved reference: R|<local>/<complex-set>|' type=IrErrorType
VAR name:<complex-set> type:kotlin.collections.MutableList<kotlin.Int> [val]
TYPE_OP type=kotlin.collections.MutableList<kotlin.Int> origin=CAST typeOperand=kotlin.collections.MutableList<kotlin.Int>
CALL 'public abstract fun <get-xs> (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
$this: GET_VAR 'x: <root>.X declared in <root>.test' type=<root>.X origin=null
ERROR_CALL 'Unresolved reference: R|<local>/<complex-set>|' type=IrErrorType
VAR name:<complex-set> type:kotlin.collections.MutableList<kotlin.Int> [val]
TYPE_OP type=kotlin.collections.MutableList<kotlin.Int> origin=CAST typeOperand=kotlin.collections.MutableList<kotlin.Int>
CALL 'public abstract fun f (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
$this: GET_VAR 'x: <root>.X declared in <root>.test' type=<root>.X origin=null
ERROR_CALL 'Unresolved reference: R|<local>/<complex-set>|' type=IrErrorType
VAR name:<complex-set> type:kotlin.collections.MutableList<kotlin.Any> [val]
BLOCK type=kotlin.collections.MutableList<kotlin.Any> origin=EXCLEXCL
VAR name:<bangbang> type:kotlin.collections.MutableList<kotlin.Any> [val]
CALL 'public abstract fun <get-xs> (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
$this: GET_VAR 'nx: <root>.X? declared in <root>.test' type=<root>.X? origin=null
WHEN type=kotlin.collections.MutableList<kotlin.Any> origin=EXCLEXCL
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
@@ -153,38 +157,38 @@ FILE fqName:<root> fileName:/kt30020.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
VALUE_PARAMETER name:fromIndex index:0 type:kotlin.Int
VALUE_PARAMETER name:toIndex index:1 type:kotlin.Int
FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:kotlin.Int) returnType:kotlin.Boolean
FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:kotlin.collections.List, element:kotlin.Int) returnType:kotlin.Boolean
overridden:
public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.List
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List
VALUE_PARAMETER name:element index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.List, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean
overridden:
public abstract fun containsAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
public abstract fun containsAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.List
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.Int>
FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, index:kotlin.Int) returnType:kotlin.Int
FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:kotlin.collections.List, index:kotlin.Int) returnType:kotlin.Int
overridden:
public abstract fun get (index: kotlin.Int): E of <uninitialized parent> declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
public abstract fun get (index: kotlin.Int): E of <uninitialized parent> declared in kotlin.collections.List
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List
VALUE_PARAMETER name:index index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:kotlin.Int) returnType:kotlin.Int
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:ABSTRACT <> ($this:kotlin.collections.List, element:kotlin.Int) returnType:kotlin.Int
overridden:
public abstract fun indexOf (element: E of <uninitialized parent>): kotlin.Int declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
public abstract fun indexOf (element: E of <uninitialized parent>): kotlin.Int declared in kotlin.collections.List
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List
VALUE_PARAMETER name:element index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List) returnType:kotlin.Boolean
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:ABSTRACT <> ($this:kotlin.collections.List) returnType:kotlin.Boolean
overridden:
public abstract fun isEmpty (): kotlin.Boolean declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List) returnType:kotlin.collections.Iterator<kotlin.Int>
public abstract fun isEmpty (): kotlin.Boolean declared in kotlin.collections.List
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List
FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:kotlin.collections.List) returnType:kotlin.collections.Iterator<kotlin.Int>
overridden:
public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:kotlin.Int) returnType:kotlin.Int
public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:ABSTRACT <> ($this:kotlin.collections.List, element:kotlin.Int) returnType:kotlin.Int
overridden:
public abstract fun lastIndexOf (element: E of <uninitialized parent>): kotlin.Int declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
public abstract fun lastIndexOf (element: E of <uninitialized parent>): kotlin.Int declared in kotlin.collections.List
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.List
VALUE_PARAMETER name:element index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
@@ -36,5 +36,6 @@ FILE fqName:<root> fileName:/lambdaInCAO.kt
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Unit declared in <root>.test3' type=kotlin.Unit origin=LAMBDA
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test3' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test3' type=kotlin.Int origin=null
+8 -4
View File
@@ -12,7 +12,8 @@ FILE fqName:<root> fileName:/literals.kt
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
$this: CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.Int declared in <root>'
@@ -66,7 +67,8 @@ FILE fqName:<root> fileName:/literals.kt
FIELD PROPERTY_BACKING_FIELD name:test8 type:kotlin.Long visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Long declared in kotlin.Long' type=kotlin.Long origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test8> visibility:public modality:FINAL <> () returnType:kotlin.Long
$this: CONST Long type=kotlin.Long value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test8> visibility:public modality:FINAL <> () returnType:kotlin.Long
correspondingProperty: PROPERTY name:test8 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test8> (): kotlin.Long declared in <root>'
@@ -84,7 +86,8 @@ FILE fqName:<root> fileName:/literals.kt
FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Double visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Double declared in kotlin.Double' type=kotlin.Double origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test10> visibility:public modality:FINAL <> () returnType:kotlin.Double
$this: CONST Double type=kotlin.Double value=1.0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test10> visibility:public modality:FINAL <> () returnType:kotlin.Double
correspondingProperty: PROPERTY name:test10 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test10> (): kotlin.Double declared in <root>'
@@ -102,7 +105,8 @@ FILE fqName:<root> fileName:/literals.kt
FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Float visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Float declared in kotlin.Float' type=kotlin.Float origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test12> visibility:public modality:FINAL <> () returnType:kotlin.Float
$this: CONST Float type=kotlin.Float value=1.0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test12> visibility:public modality:FINAL <> () returnType:kotlin.Float
correspondingProperty: PROPERTY name:test12 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test12> (): kotlin.Float declared in <root>'
@@ -68,7 +68,8 @@ FILE fqName:<root> fileName:/membersImportedFromObject.kt
FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun fooExt (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test3> visibility:public modality:FINAL <> () returnType:kotlin.Int
$this: 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
RETURN type=kotlin.Nothing from='public final fun <get-test3> (): kotlin.Int declared in <root>'
@@ -77,7 +78,8 @@ FILE fqName:<root> fileName:/membersImportedFromObject.kt
FIELD PROPERTY_BACKING_FIELD name:test4 type:IrErrorType visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun <get-barExt> (): IrErrorType declared in <root>.A' type=IrErrorType origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test4> visibility:public modality:FINAL <> () returnType:IrErrorType
$this: CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test4> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test4> (): IrErrorType declared in <root>'
@@ -36,6 +36,7 @@ FILE fqName:<root> fileName:/objectReference.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Unresolved reference: R|/Z|' type=<root>.Z
CLASS CLASS name:Nested modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Z.Nested
CONSTRUCTOR visibility:public <> () returnType:<root>.Z.Nested [primary]
@@ -50,7 +51,8 @@ FILE fqName:<root> fileName:/objectReference.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null
FUN name:test visibility:public modality:FINAL <> ($this:<root>.Z.Nested) returnType:kotlin.Unit
$this: ERROR_CALL 'Unresolved reference: R|/Z|' type=<root>.Z
FUN name:test visibility:public modality:FINAL <> ($this:<root>.Z.Nested) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.Z.Nested
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
@@ -59,7 +61,8 @@ FILE fqName:<root> fileName:/objectReference.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
$this: ERROR_CALL 'Unresolved reference: R|/Z|' type=<root>.Z
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
@@ -85,6 +88,7 @@ FILE fqName:<root> fileName:/objectReference.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Unresolved reference: R|/Z|' type=<root>.Z
FUNCTION_REFERENCE 'local final fun <anonymous> (): IrErrorType declared in <root>.Z.aLambda' type=IrErrorType origin=LAMBDA
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-aLambda> visibility:public modality:FINAL <> ($this:<root>.Z) returnType:IrErrorType
correspondingProperty: PROPERTY name:aLambda visibility:public modality:FINAL [val]
@@ -111,7 +115,8 @@ FILE fqName:<root> fileName:/objectReference.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null
FUN name:test visibility:public modality:FINAL <> ($this:<root>.Z.anObject.<no name provided>) returnType:kotlin.Unit
$this: ERROR_CALL 'Unresolved reference: R|/Z|' type=<root>.Z
FUN name:test visibility:public modality:FINAL <> ($this:<root>.Z.anObject.<no name provided>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.Z.anObject.<no name provided>
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
@@ -120,6 +125,7 @@ FILE fqName:<root> fileName:/objectReference.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Unresolved reference: R|/Z|' type=<root>.Z
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.Z.anObject.<no name provided>' type=<root>.Z.anObject.<no name provided> origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anObject> visibility:public modality:FINAL <> ($this:<root>.Z) returnType:kotlin.Any
correspondingProperty: PROPERTY name:anObject visibility:public modality:FINAL [val]
@@ -149,4 +155,4 @@ FILE fqName:<root> fileName:/objectReference.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Unresolved reference: R|/Z|' type=<root>.Z
@@ -30,7 +30,8 @@ FILE fqName:<root> fileName:/primitivesImplicitConversions.kt
FIELD PROPERTY_BACKING_FIELD name:test4 type:kotlin.Long visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test4> visibility:public modality:FINAL <> () returnType:kotlin.Long
$this: CONST Int type=kotlin.Int value=42
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test4> visibility:public modality:FINAL <> () returnType:kotlin.Long
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test4> (): kotlin.Long declared in <root>'
@@ -39,7 +40,8 @@ FILE fqName:<root> fileName:/primitivesImplicitConversions.kt
FIELD PROPERTY_BACKING_FIELD name:test5 type:kotlin.Short visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test5> visibility:public modality:FINAL <> () returnType:kotlin.Short
$this: CONST Int type=kotlin.Int value=42
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test5> visibility:public modality:FINAL <> () returnType:kotlin.Short
correspondingProperty: PROPERTY name:test5 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test5> (): kotlin.Short declared in <root>'
@@ -48,7 +50,8 @@ FILE fqName:<root> fileName:/primitivesImplicitConversions.kt
FIELD PROPERTY_BACKING_FIELD name:test6 type:kotlin.Byte visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test6> visibility:public modality:FINAL <> () returnType:kotlin.Byte
$this: CONST Int type=kotlin.Int value=42
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test6> visibility:public modality:FINAL <> () returnType:kotlin.Byte
correspondingProperty: PROPERTY name:test6 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test6> (): kotlin.Byte declared in <root>'
@@ -63,16 +66,21 @@ FILE fqName:<root> fileName:/primitivesImplicitConversions.kt
CONST Int type=kotlin.Long? value=42
VAR name:test4 type:kotlin.Long? [val]
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
VAR name:test5 type:kotlin.Long? [val]
$this: CONST Int type=kotlin.Int value=1
VAR name:test5 type:kotlin.Long? [val]
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
VAR name:test6 type:kotlin.Short? [val]
$this: CONST Int type=kotlin.Int value=1
VAR name:test6 type:kotlin.Short? [val]
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
VAR name:test7 type:kotlin.Byte? [val]
$this: CONST Int type=kotlin.Int value=1
VAR name:test7 type:kotlin.Byte? [val]
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
FUN name:testImplicitArguments visibility:public modality:FINAL <> (x:kotlin.Long) returnType:kotlin.Unit
$this: CONST Int type=kotlin.Int value=1
FUN name:testImplicitArguments visibility:public modality:FINAL <> (x:kotlin.Long) returnType:kotlin.Unit
VALUE_PARAMETER name:x index:0 type:kotlin.Long
EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
BLOCK_BODY
CLASS CLASS name:TestImplicitArguments modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestImplicitArguments
@@ -80,6 +88,7 @@ FILE fqName:<root> fileName:/primitivesImplicitConversions.kt
VALUE_PARAMETER name:x index:0 type:kotlin.Long
EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:TestImplicitArguments modality:FINAL visibility:public superTypes:[kotlin.Any]'
@@ -257,7 +257,8 @@ FILE fqName:<root> fileName:/propertyReferences.kt
FIELD PROPERTY_BACKING_FIELD name:test_varWithPrivateSet type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun <get-varWithPrivateSet> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test_varWithPrivateSet> visibility:public modality:FINAL <> () returnType:kotlin.Int
$this: ERROR_CALL 'Unresolved reference: R|/C|' type=<root>.C
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test_varWithPrivateSet> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test_varWithPrivateSet visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test_varWithPrivateSet> (): kotlin.Int declared in <root>'
@@ -266,7 +267,8 @@ FILE fqName:<root> fileName:/propertyReferences.kt
FIELD PROPERTY_BACKING_FIELD name:test_varWithProtectedSet type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun <get-varWithProtectedSet> (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test_varWithProtectedSet> visibility:public modality:FINAL <> () returnType:kotlin.Int
$this: ERROR_CALL 'Unresolved reference: R|/C|' type=<root>.C
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test_varWithProtectedSet> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test_varWithProtectedSet visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test_varWithProtectedSet> (): kotlin.Int declared in <root>'
@@ -57,5 +57,6 @@ FILE fqName:test fileName:/safeCallWithIncrementDecrement.kt
CALL 'public final fun set (index: kotlin.Int, value: kotlin.Int): kotlin.Unit declared in test' type=kotlin.Unit origin=null
index: CONST Int type=kotlin.Int value=0
value: CALL 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'val <unary>: kotlin.Int [val] declared in test.testArrayAccess' type=kotlin.Int origin=null
GET_VAR 'val <unary>: kotlin.Int [val] declared in test.testArrayAccess' type=kotlin.Int origin=null
@@ -4,16 +4,20 @@ FILE fqName:<root> fileName:/samOperators.kt
FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public open fun get (k: java.lang.Runnable?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Unresolved reference: this#' type=<root>.J
k: ERROR_CALL 'Unresolved reference: <Unresolved name: f>#' type=IrErrorType
CALL 'public open fun get (k: java.lang.Runnable?, m: java.lang.Runnable?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Unresolved reference: this#' type=<root>.J
k: ERROR_CALL 'Unresolved reference: <Unresolved name: f>#' type=IrErrorType
m: ERROR_CALL 'Unresolved reference: <Unresolved name: f>#' type=IrErrorType
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public open fun set (k: java.lang.Runnable?, v: java.lang.Runnable?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Unresolved reference: this#' type=<root>.J
k: ERROR_CALL 'Unresolved reference: <Unresolved name: f>#' type=IrErrorType
v: ERROR_CALL 'Unresolved reference: <Unresolved name: f>#' type=IrErrorType
CALL 'public open fun set (k: java.lang.Runnable?, m: java.lang.Runnable?, v: java.lang.Runnable?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: ERROR_CALL 'Unresolved reference: this#' type=<root>.J
k: ERROR_CALL 'Unresolved reference: <Unresolved name: f>#' type=IrErrorType
m: ERROR_CALL 'Unresolved reference: <Unresolved name: f>#' type=IrErrorType
v: ERROR_CALL 'Unresolved reference: <Unresolved name: f>#' type=IrErrorType
@@ -5,6 +5,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test1' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test1' type=kotlin.Int origin=null
FUN name:test2 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -12,6 +13,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun minus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test2' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test2' type=kotlin.Int origin=null
FUN name:test3 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -19,6 +21,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null
FUN name:test4 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -26,6 +29,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4 (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun div (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test4' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test4' type=kotlin.Int origin=null
FUN name:test5 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -33,6 +37,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test5 (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun rem (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test5' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test5' type=kotlin.Int origin=null
FUN name:test6 visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.ranges.IntRange
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -40,6 +45,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test6 (a: kotlin.Int, b: kotlin.Int): kotlin.ranges.IntRange declared in <root>'
CALL 'public final fun rangeTo (other: kotlin.Int): kotlin.ranges.IntRange declared in kotlin.Int' type=kotlin.ranges.IntRange origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test6' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test6' type=kotlin.Int origin=null
FUN name:test1x visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -47,6 +53,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1x (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test1x' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test1x' type=kotlin.Int origin=null
FUN name:test2x visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -54,6 +61,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2x (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun minus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test2x' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test2x' type=kotlin.Int origin=null
FUN name:test3x visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -61,6 +69,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3x (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test3x' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test3x' type=kotlin.Int origin=null
FUN name:test4x visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -68,6 +77,7 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4x (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun div (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test4x' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test4x' type=kotlin.Int origin=null
FUN name:test5x visibility:public modality:FINAL <> (a:kotlin.Int, b:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:a index:0 type:kotlin.Int
@@ -75,5 +85,6 @@ FILE fqName:<root> fileName:/simpleOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test5x (a: kotlin.Int, b: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun rem (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'a: kotlin.Int declared in <root>.test5x' type=kotlin.Int origin=null
other: GET_VAR 'b: kotlin.Int declared in <root>.test5x' type=kotlin.Int origin=null
@@ -4,26 +4,31 @@ FILE fqName:<root> fileName:/simpleUnaryOperators.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (x: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Int
$this: GET_VAR 'x: kotlin.Int declared in <root>.test1' type=kotlin.Int origin=null
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
FUN name:test3 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:kotlin.Int
$this: CONST Int type=kotlin.Int value=42
FUN name:test3 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:kotlin.Int
VALUE_PARAMETER name:x index:0 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 (x: kotlin.Int): kotlin.Int declared in <root>'
CALL 'public final fun unaryPlus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
FUN name:test4 visibility:public modality:FINAL <> () returnType:kotlin.Int
$this: GET_VAR 'x: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null
FUN name:test4 visibility:public modality:FINAL <> () returnType:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4 (): kotlin.Int declared in <root>'
CALL 'public final fun unaryPlus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
FUN name:test5 visibility:public modality:FINAL <> (x:kotlin.Boolean) returnType:kotlin.Boolean
$this: CONST Int type=kotlin.Int value=42
FUN name:test5 visibility:public modality:FINAL <> (x:kotlin.Boolean) returnType:kotlin.Boolean
VALUE_PARAMETER name:x index:0 type:kotlin.Boolean
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test5 (x: kotlin.Boolean): kotlin.Boolean declared in <root>'
CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
FUN name:test6 visibility:public modality:FINAL <> () returnType:kotlin.Boolean
$this: GET_VAR 'x: kotlin.Boolean declared in <root>.test5' type=kotlin.Boolean origin=null
FUN name:test6 visibility:public modality:FINAL <> () returnType:kotlin.Boolean
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test6 (): kotlin.Boolean declared in <root>'
CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
$this: CONST Boolean type=kotlin.Boolean value=true
@@ -5,6 +5,7 @@ FILE fqName:<root> fileName:/stringPlus.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (a: kotlin.String, b: kotlin.Any): kotlin.String declared in <root>'
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
$this: GET_VAR 'a: kotlin.String declared in <root>.test1' type=kotlin.String origin=null
other: GET_VAR 'b: kotlin.Any declared in <root>.test1' type=kotlin.Any origin=null
FUN name:test2 visibility:public modality:FINAL <> (a:kotlin.String, b:kotlin.Int) returnType:kotlin.String
VALUE_PARAMETER name:a index:0 type:kotlin.String
@@ -12,6 +13,9 @@ FILE fqName:<root> fileName:/stringPlus.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (a: kotlin.String, b: kotlin.Int): kotlin.String declared in <root>'
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
$this: GET_VAR 'a: kotlin.String declared in <root>.test2' type=kotlin.String origin=null
other: CONST String type=kotlin.String value="+"
other: GET_VAR 'b: kotlin.Int declared in <root>.test2' type=kotlin.Int origin=null
FUN name:test3 visibility:public modality:FINAL <> (a:kotlin.String, b:kotlin.Int) returnType:kotlin.String
VALUE_PARAMETER name:a index:0 type:kotlin.String
@@ -19,5 +23,12 @@ FILE fqName:<root> fileName:/stringPlus.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 (a: kotlin.String, b: kotlin.Int): kotlin.String declared in <root>'
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
$this: GET_VAR 'a: kotlin.String declared in <root>.test3' type=kotlin.String origin=null
other: CONST String type=kotlin.String value="+"
other: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'b: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null
other: CONST Int type=kotlin.Int value=1
other: GET_VAR 'a: kotlin.String declared in <root>.test3' type=kotlin.String origin=null
@@ -19,6 +19,7 @@ FILE fqName:<root> fileName:/thisReferenceBeforeClassDeclared.kt
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (a: <root>.WithCompanion.Companion) [primary] declared in <root>.WithCompanion'
a: CALL 'public final fun foo (): <root>.WithCompanion.Companion declared in <root>.WithCompanion.Companion' type=<root>.WithCompanion.Companion origin=null
$this: ERROR_CALL 'Unresolved reference: this#' type=<root>.WithCompanion
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion]'
CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=null
CLASS CLASS name:WithCompanion modality:OPEN visibility:public superTypes:[kotlin.Any]
@@ -163,6 +163,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
if: CALL 'public final fun not (): kotlin.Boolean 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: CALL 'public final fun f (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=null
$this: CONST Boolean type=kotlin.Boolean value=true
arg1: CONST Int type=kotlin.String value=3
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="3"
@@ -189,6 +190,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
if: CALL 'public final fun not (): kotlin.Boolean 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: 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
arg1: CONST Int type=kotlin.String value=6
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="6"
@@ -207,6 +209,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
if: CALL 'public final fun not (): kotlin.Boolean 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: CALL 'public final fun <get-g2> (): T of <uninitialized parent> declared in <root>.C' type=T of <uninitialized parent> origin=null
$this: 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"
@@ -223,6 +226,7 @@ FILE fqName:<root> fileName:/useImportedMember.kt
if: CALL 'public final fun not (): kotlin.Boolean 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: CALL 'public final fun <get-fromClass> (): T of <uninitialized parent> declared in <root>.BaseClass' type=T of <uninitialized parent> origin=null
$this: 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"
@@ -25,13 +25,19 @@ FILE fqName:<root> fileName:/whenWithSubjectVariable.kt
then: CONST Int type=IrErrorType value=2
BRANCH
if: CALL 'public open fun contains (value: kotlin.Int): kotlin.Boolean declared in kotlin.ranges.IntRange' type=kotlin.Boolean origin=null
$this: CALL 'public final fun rangeTo (other: kotlin.Int): kotlin.ranges.IntRange declared in kotlin.Int' type=kotlin.ranges.IntRange origin=null
$this: CONST Int type=kotlin.Int value=0
other: CONST Int type=kotlin.Int value=10
value: GET_VAR 'val y: kotlin.Any [val] declared in <root>.test' type=kotlin.Any origin=null
then: CONST Int type=IrErrorType value=3
BRANCH
if: CALL 'public open fun contains (value: kotlin.Int): kotlin.Boolean declared in kotlin.ranges.IntRange' type=kotlin.Boolean origin=null
$this: CALL 'public final fun rangeTo (other: kotlin.Int): kotlin.ranges.IntRange declared in kotlin.Int' type=kotlin.ranges.IntRange origin=null
$this: CONST Int type=kotlin.Int value=10
other: CONST Int type=kotlin.Int value=20
value: GET_VAR 'val y: kotlin.Any [val] declared in <root>.test' type=kotlin.Any origin=null
then: CONST Int type=IrErrorType value=4
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=1
@@ -6,18 +6,22 @@ FILE fqName:<root> fileName:/coercionInLoop.kt
size: CONST Int type=kotlin.Int value=5
VAR name:x type:kotlin.collections.DoubleIterator [val]
CALL 'public final fun iterator (): kotlin.collections.DoubleIterator declared in kotlin.DoubleArray' type=kotlin.collections.DoubleIterator origin=null
VAR name:i type:kotlin.Int [var]
$this: GET_VAR 'val a: kotlin.DoubleArray [val] declared in <root>.box' type=kotlin.DoubleArray origin=null
VAR name:i type:kotlin.Int [var]
CONST Int type=kotlin.Int value=0
WHILE label=null origin=WHILE_LOOP
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
$this: GET_VAR 'val x: kotlin.collections.DoubleIterator [val] declared in <root>.box' type=kotlin.collections.DoubleIterator origin=null
body: BLOCK type=kotlin.Int origin=null
WHEN type=kotlin.String origin=IF
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean 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: CALL 'public final fun get (index: kotlin.Int): kotlin.Double declared in kotlin.DoubleArray' type=kotlin.Double origin=null
$this: GET_VAR 'val a: kotlin.DoubleArray [val] declared in <root>.box' type=kotlin.DoubleArray origin=null
index: GET_VAR 'var i: kotlin.Int [var] declared in <root>.box' type=kotlin.Int origin=null
arg1: CALL 'public final fun next (): kotlin.Double declared in kotlin.collections.DoubleIterator' type=kotlin.Double origin=null
$this: GET_VAR 'val x: kotlin.collections.DoubleIterator [val] declared in <root>.box' type=kotlin.collections.DoubleIterator origin=null
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Fail "
+1
View File
@@ -8,6 +8,7 @@ FILE fqName:<root> fileName:/builtinMap.kt
WHEN type=kotlin.collections.Map<K1 of <root>.plus, V1 of <root>.plus> origin=IF
BRANCH
if: CALL 'public abstract fun isEmpty (): kotlin.Boolean declared in kotlin.collections.Map' type=kotlin.Boolean origin=null
$this: ERROR_CALL 'Unresolved reference: this#' type=kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus>
then: ERROR_CALL 'Unresolved reference: <Ambiguity: mapOf, [kotlin/collections/mapOf, kotlin/collections/mapOf]>#' type=IrErrorType
GET_VAR 'pair: kotlin.Pair<K1 of <root>.plus, V1 of <root>.plus> declared in <root>.plus' type=kotlin.Pair<K1 of <root>.plus, V1 of <root>.plus> origin=null
BRANCH
-7
View File
@@ -1,7 +0,0 @@
FILE fqName:<root> fileName:/javaMethod.kt
FUN name:test visibility:public modality:FINAL <> (j:<root>.J) returnType:kotlin.Unit
VALUE_PARAMETER name:j index:0 type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test (j: <root>.J): kotlin.Unit declared in <root>'
CALL 'public open fun bar (): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
+1
View File
@@ -6,5 +6,6 @@ public class J {
}
// FILE: javaMethod.kt
// FIR_IDENTICAL
fun test(j: J) = j.bar()
@@ -1,7 +0,0 @@
FILE fqName:<root> fileName:/javaNestedClass.kt
FUN name:test visibility:public modality:FINAL <> (jj:<root>.J.JJ) returnType:kotlin.Unit
VALUE_PARAMETER name:jj index:0 type:<root>.J.JJ
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test (jj: <root>.J.JJ): kotlin.Unit declared in <root>'
CALL 'public open fun foo (): kotlin.Unit declared in <root>.J.JJ' type=kotlin.Unit origin=null
+1
View File
@@ -10,4 +10,5 @@ public class J {
// FILE: javaNestedClass.kt
// FIR_IDENTICAL
fun test(jj: J.JJ) = jj.foo()
@@ -1,7 +0,0 @@
FILE fqName:<root> fileName:/kotlinInnerClass.kt
FUN name:test visibility:public modality:FINAL <> (inner:<root>.Outer.Inner) returnType:kotlin.Unit
VALUE_PARAMETER name:inner index:0 type:<root>.Outer.Inner
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test (inner: <root>.Outer.Inner): kotlin.Unit declared in <root>'
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Outer.Inner' type=kotlin.Unit origin=null
+1
View File
@@ -10,4 +10,5 @@ class Outer {
}
// FILE: kotlinInnerClass.kt
// FIR_IDENTICAL
fun test(inner: Outer.Inner) = inner.foo()
+1
View File
@@ -3,6 +3,7 @@ FILE fqName:<root> fileName:/simple.kt
FIELD PROPERTY_BACKING_FIELD name:test type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
$this: CONST Int type=kotlin.Int value=2
other: CONST Int type=kotlin.Int value=2
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test visibility:public modality:FINAL [val]
@@ -98,6 +98,11 @@ FILE fqName:<root> fileName:/localVariableOfIntersectionType.kt
ERROR_CALL 'Unresolved reference: <Unresolved name: bar>#' type=IrErrorType
VAR name:t type:T of <root>.Inv [val]
CALL 'public abstract fun <get-t> (): T of <root>.Inv declared in <root>.Inv' type=T of <root>.Inv origin=null
$this: CALL 'public abstract fun create <T> (x: <root>.In<T of <root>.Z.create>, y: <root>.In<T of <root>.Z.create>): <root>.Inv<T of <root>.Z.create> declared in <root>.Z' type=IrErrorType origin=null
<T>: <none>
$this: GET_VAR 'z: <root>.Z declared in <root>.test' type=<root>.Z origin=null
x: GET_VAR 'a: <root>.In<<root>.IA> declared in <root>.test' type=<root>.In<<root>.IA> origin=null
y: GET_VAR 'b: <root>.In<<root>.IB> declared in <root>.test' type=<root>.In<<root>.IB> origin=null
ERROR_CALL 'Unresolved reference: <Unresolved name: foo>#' type=IrErrorType
ERROR_CALL 'Unresolved reference: <Unresolved name: bar>#' type=IrErrorType