PSI2IR KT-47450 prevent SOE when generating IR for deep expressions

This commit is contained in:
Dmitry Petrov
2021-06-25 14:42:11 +03:00
committed by TeamCityServer
parent c4d9945782
commit 560c269e05
14 changed files with 868 additions and 59 deletions
@@ -1418,6 +1418,12 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest {
runTest("compiler/testData/ir/irText/expressions/kt47328.kt"); runTest("compiler/testData/ir/irText/expressions/kt47328.kt");
} }
@Test
@TestMetadata("kt47450.kt")
public void testKt47450() throws Exception {
runTest("compiler/testData/ir/irText/expressions/kt47450.kt");
}
@Test @Test
@TestMetadata("lambdaInCAO.kt") @TestMetadata("lambdaInCAO.kt")
public void testLambdaInCAO() throws Exception { public void testLambdaInCAO() throws Exception {
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.psi2ir.generators
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
@@ -18,6 +19,10 @@ class AnnotationGenerator(context: GeneratorContext) : IrElementVisitorVoid {
element.acceptChildrenVoid(this) element.acceptChildrenVoid(this)
} }
override fun visitCall(expression: IrCall) {
expression.acceptChildrenVoid(this)
}
override fun visitDeclaration(declaration: IrDeclarationBase) { override fun visitDeclaration(declaration: IrDeclarationBase) {
if (declaration is IrTypeParametersContainer) { if (declaration is IrTypeParametersContainer) {
typeTranslator.enterScope(declaration) typeTranslator.enterScope(declaration)
@@ -33,7 +33,6 @@ import org.jetbrains.kotlin.ir.expressions.impl.*
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
import org.jetbrains.kotlin.ir.symbols.impl.IrValueParameterSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrValueParameterSymbolImpl
import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.util.isTrivial
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.psi.KtExpression
@@ -75,37 +74,33 @@ fun StatementGenerator.generateReceiver(defaultStartOffset: Int, defaultEndOffse
if (receiver is TransientReceiver) return TransientReceiverValue(irReceiverType) if (receiver is TransientReceiver) return TransientReceiverValue(irReceiverType)
return generateDelegatedValue(irReceiverType) { return object : ExpressionValue(irReceiverType) {
val receiverExpression: IrExpression = when (receiver) { override fun load(): IrExpression =
is ImplicitClassReceiver -> { when (receiver) {
val receiverClassDescriptor = receiver.classDescriptor is ImplicitClassReceiver -> {
if (shouldGenerateReceiverAsSingletonReference(receiverClassDescriptor)) val receiverClassDescriptor = receiver.classDescriptor
generateSingletonReference(receiverClassDescriptor, defaultStartOffset, defaultEndOffset, receiver.type) if (shouldGenerateReceiverAsSingletonReference(receiverClassDescriptor))
else generateSingletonReference(receiverClassDescriptor, defaultStartOffset, defaultEndOffset, receiver.type)
else
IrGetValueImpl(
defaultStartOffset, defaultEndOffset, irReceiverType,
context.symbolTable.referenceValueParameter(receiverClassDescriptor.thisAsReceiverParameter)
)
}
is ThisClassReceiver ->
generateThisOrSuperReceiver(receiver, receiver.classDescriptor)
is SuperCallReceiverValue ->
generateThisOrSuperReceiver(receiver, receiver.thisType.constructor.declarationDescriptor as ClassDescriptor)
is ExpressionReceiver ->
generateExpression(receiver.expression)
is ExtensionReceiver ->
IrGetValueImpl( IrGetValueImpl(
defaultStartOffset, defaultEndOffset, irReceiverType, defaultStartOffset, defaultStartOffset, irReceiverType,
context.symbolTable.referenceValueParameter(receiverClassDescriptor.thisAsReceiverParameter) context.symbolTable.referenceValueParameter(receiver.declarationDescriptor.extensionReceiverParameter!!)
) )
else ->
throw AssertionError("Unexpected receiver: ${receiver::class.java.simpleName}")
} }
is ThisClassReceiver ->
generateThisOrSuperReceiver(receiver, receiver.classDescriptor)
is SuperCallReceiverValue ->
generateThisOrSuperReceiver(receiver, receiver.thisType.constructor.declarationDescriptor as ClassDescriptor)
is ExpressionReceiver ->
generateExpression(receiver.expression)
is ExtensionReceiver ->
IrGetValueImpl(
defaultStartOffset, defaultStartOffset, irReceiverType,
context.symbolTable.referenceValueParameter(receiver.declarationDescriptor.extensionReceiverParameter!!)
)
else ->
TODO("Receiver: ${receiver::class.java.simpleName}")
}
if (receiverExpression.isTrivial())
RematerializableValue(receiverExpression.type, receiverExpression)
else
OnceExpressionValue(receiverExpression)
} }
} }
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.PsiIrFileEntry import org.jetbrains.kotlin.ir.PsiIrFileEntry
import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrClass
import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.declarations.IrFile
import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.util.withScope import org.jetbrains.kotlin.ir.util.withScope
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
@@ -37,6 +38,10 @@ class IrSyntheticDeclarationGenerator(context: GeneratorContext) : IrElementVisi
element.acceptChildrenVoid(this) element.acceptChildrenVoid(this)
} }
override fun visitCall(expression: IrCall) {
expression.acceptChildrenVoid(this)
}
private fun collectDescriptors(descriptor: ClassDescriptor): MutableList<DeclarationDescriptor> { private fun collectDescriptors(descriptor: ClassDescriptor): MutableList<DeclarationDescriptor> {
val result = mutableListOf<DeclarationDescriptor>() val result = mutableListOf<DeclarationDescriptor>()
result.addAll(DescriptorUtils.getAllDescriptors(descriptor.unsubstitutedMemberScope)) result.addAll(DescriptorUtils.getAllDescriptors(descriptor.unsubstitutedMemberScope))
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.VariableDescriptorWithAccessors import org.jetbrains.kotlin.descriptors.VariableDescriptorWithAccessors
import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.Scope import org.jetbrains.kotlin.ir.builders.Scope
import org.jetbrains.kotlin.ir.declarations.IrDeclaration import org.jetbrains.kotlin.ir.declarations.IrDeclaration
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
@@ -65,34 +66,28 @@ class StatementGenerator(
fun KotlinType.toIrType() = typeTranslator.translateType(this) fun KotlinType.toIrType() = typeTranslator.translateType(this)
fun generateStatement(ktElement: KtElement): IrStatement = fun generateStatement(ktElement: KtElement): IrStatement =
ktElement.genStmt()
fun generateStatements(ktStatements: List<KtExpression>, to: IrStatementContainer) =
ktStatements.mapTo(to.statements) { generateStatement(it) }
fun generateExpression(ktExpression: KtExpression): IrExpression =
ktExpression.genExpr()
private fun KtElement.genStmt(): IrStatement =
try { try {
deparenthesize().accept(this@StatementGenerator, null) ktElement.deparenthesize().accept(this@StatementGenerator, null)
} catch (e: BackendException) { } catch (e: BackendException) {
throw e throw e
} catch (e: ErrorExpressionException) { } catch (e: ErrorExpressionException) {
throw e throw e
} catch (e: Throwable) { } catch (e: Throwable) {
ErrorExpressionGenerator(this@StatementGenerator).generateErrorExpression(this, e) ErrorExpressionGenerator(this@StatementGenerator).generateErrorExpression(ktElement, e)
} }
private fun KtElement.genExpr(): IrExpression = fun generateStatements(ktStatements: List<KtExpression>, to: IrStatementContainer) =
when (val irStatement = genStmt()) { ktStatements.mapTo(to.statements) { generateStatement(it) }
fun generateExpression(ktElement: KtElement): IrExpression =
when (val irStatement = generateStatement(ktElement)) {
is IrExpression -> is IrExpression ->
irStatement irStatement
is IrDeclaration -> is IrDeclaration ->
IrBlockImpl( IrBlockImpl(
irStatement.startOffset, irStatement.startOffset,
irStatement.endOffset, irStatement.endOffset,
this@StatementGenerator.context.irBuiltIns.unitType, context.irBuiltIns.unitType,
null, null,
listOf(irStatement) listOf(irStatement)
) )
@@ -122,7 +117,7 @@ class StatementGenerator(
property.startOffsetSkippingComments, property.endOffset, IrDeclarationOrigin.DEFINED, property.startOffsetSkippingComments, property.endOffset, IrDeclarationOrigin.DEFINED,
variableDescriptor, variableDescriptor,
variableDescriptor.type.toIrType(), variableDescriptor.type.toIrType(),
property.initializer?.genExpr() property.initializer?.let { generateExpression(it) }
) )
} }
@@ -141,7 +136,7 @@ class StatementGenerator(
context.irBuiltIns.unitType, IrStatementOrigin.DESTRUCTURING_DECLARATION context.irBuiltIns.unitType, IrStatementOrigin.DESTRUCTURING_DECLARATION
) )
val ktInitializer = multiDeclaration.initializer!! val ktInitializer = multiDeclaration.initializer!!
val containerValue = scope.createTemporaryVariableInBlock(context, ktInitializer.genExpr(), irBlock, "container") val containerValue = scope.createTemporaryVariableInBlock(context, generateExpression(ktInitializer), irBlock, "container")
declareComponentVariablesInBlock(multiDeclaration, irBlock, containerValue) declareComponentVariablesInBlock(multiDeclaration, irBlock, containerValue)
@@ -185,7 +180,7 @@ class StatementGenerator(
val irBlock = IrBlockImpl(expression.startOffsetSkippingComments, expression.endOffset, returnType.toIrType()) val irBlock = IrBlockImpl(expression.startOffsetSkippingComments, expression.endOffset, returnType.toIrType())
expression.statements.forEach { expression.statements.forEach {
irBlock.statements.add(it.genStmt()) irBlock.statements.add(generateStatement(it))
} }
return irBlock return irBlock
@@ -193,10 +188,11 @@ class StatementGenerator(
override fun visitReturnExpression(expression: KtReturnExpression, data: Nothing?): IrStatement { override fun visitReturnExpression(expression: KtReturnExpression, data: Nothing?): IrStatement {
val returnTarget = getReturnExpressionTarget(expression) val returnTarget = getReturnExpressionTarget(expression)
val irReturnedExpression = expression.returnedExpression?.genExpr() ?: IrGetObjectValueImpl( val irReturnedExpression = expression.returnedExpression?.let { generateExpression(it) }
expression.startOffsetSkippingComments, expression.endOffset, context.irBuiltIns.unitType, ?: IrGetObjectValueImpl(
context.symbolTable.referenceClass(context.builtIns.unit) expression.startOffsetSkippingComments, expression.endOffset, context.irBuiltIns.unitType,
) context.symbolTable.referenceClass(context.builtIns.unit)
)
return IrReturnImpl( return IrReturnImpl(
expression.startOffsetSkippingComments, expression.endOffset, context.irBuiltIns.nothingType, expression.startOffsetSkippingComments, expression.endOffset, context.irBuiltIns.nothingType,
context.symbolTable.referenceFunction(returnTarget), irReturnedExpression context.symbolTable.referenceFunction(returnTarget), irReturnedExpression
@@ -231,7 +227,7 @@ class StatementGenerator(
expression.startOffsetSkippingComments, expression.startOffsetSkippingComments,
expression.endOffset, expression.endOffset,
context.irBuiltIns.nothingType, context.irBuiltIns.nothingType,
expression.thrownExpression!!.genExpr() generateExpression(expression.thrownExpression!!)
) )
} }
@@ -254,7 +250,7 @@ class StatementGenerator(
val endOffset = expression.endOffset val endOffset = expression.endOffset
val resultType = getTypeInferredByFrontendOrFail(expression).toIrType() val resultType = getTypeInferredByFrontendOrFail(expression).toIrType()
val entries = expression.entries.map { it.genExpr() }.postprocessStringTemplateEntries() val entries = expression.entries.map { generateExpression(it) }.postprocessStringTemplateEntries()
return when (entries.size) { return when (entries.size) {
0 -> IrConstImpl.string(startOffset, endOffset, resultType, "") 0 -> IrConstImpl.string(startOffset, endOffset, resultType, "")
@@ -311,7 +307,7 @@ class StatementGenerator(
IrConstImpl.string(entry.startOffsetSkippingComments, entry.endOffset, context.irBuiltIns.stringType, entry.unescapedValue) IrConstImpl.string(entry.startOffsetSkippingComments, entry.endOffset, context.irBuiltIns.stringType, entry.unescapedValue)
override fun visitStringTemplateEntryWithExpression(entry: KtStringTemplateEntryWithExpression, data: Nothing?): IrStatement = override fun visitStringTemplateEntryWithExpression(entry: KtStringTemplateEntryWithExpression, data: Nothing?): IrStatement =
entry.expression!!.genExpr() generateExpression(entry.expression!!)
override fun visitSimpleNameExpression(expression: KtSimpleNameExpression, data: Nothing?): IrExpression { override fun visitSimpleNameExpression(expression: KtSimpleNameExpression, data: Nothing?): IrExpression {
val resolvedCall = getResolvedCall(expression) val resolvedCall = getResolvedCall(expression)
@@ -28,12 +28,6 @@ inline fun generateExpressionValue(type: IrType, crossinline generate: () -> IrE
override fun load(): IrExpression = generate() override fun load(): IrExpression = generate()
} }
inline fun generateDelegatedValue(type: IrType, crossinline generateValue: () -> IntermediateValue) =
object : ExpressionValue(type) {
val lazyDelegate by lazy { generateValue() }
override fun load(): IrExpression = lazyDelegate.load()
}
class OnceExpressionValue(val irExpression: IrExpression) : LValue, AssignmentReceiver { class OnceExpressionValue(val irExpression: IrExpression) : LValue, AssignmentReceiver {
private var instantiated = false private var instantiated = false
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.PsiIrFileEntry import org.jetbrains.kotlin.ir.PsiIrFileEntry
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.descriptors.IrBasedDeclarationDescriptor import org.jetbrains.kotlin.ir.descriptors.IrBasedDeclarationDescriptor
@@ -110,6 +111,10 @@ internal class InsertImplicitCasts(
override fun visitElement(element: IrElement) { override fun visitElement(element: IrElement) {
element.acceptChildrenVoid(this) element.acceptChildrenVoid(this)
} }
override fun visitCall(expression: IrCall) {
expression.acceptChildrenVoid(this)
}
}) })
} }
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrBlock import org.jetbrains.kotlin.ir.expressions.IrBlock
import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock
import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.symbols.impl.* import org.jetbrains.kotlin.ir.symbols.impl.*
@@ -52,6 +53,10 @@ open class DeepCopySymbolRemapper(
element.acceptChildrenVoid(this) element.acceptChildrenVoid(this)
} }
override fun visitCall(expression: IrCall) {
expression.acceptChildrenVoid(this)
}
protected inline fun <D : DeclarationDescriptor, B : IrSymbolOwner, reified S : IrBindableSymbol<D, B>> protected inline fun <D : DeclarationDescriptor, B : IrSymbolOwner, reified S : IrBindableSymbol<D, B>>
remapSymbol(map: MutableMap<S, S>, owner: B, createNewSymbol: (S) -> S) { remapSymbol(map: MutableMap<S, S>, owner: B, createNewSymbol: (S) -> S) {
val symbol = owner.symbol as S val symbol = owner.symbol as S
+23
View File
@@ -0,0 +1,23 @@
// FIR_IDENTICAL
// SKIP_KLIB_TEST
// SKIP_KT_DUMP
fun test(z: Int): String {
val result = "" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z +
"1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" +
z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z +
"1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" +
z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z +
"1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" +
z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z +
"1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" +
z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z +
"1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" +
z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z +
"1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" +
z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z +
"1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" +
z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z + "1" + z
return result
}
+755
View File
@@ -0,0 +1,755 @@
FILE fqName:<root> fileName:/kt47450.kt
FUN name:test visibility:public modality:FINAL <> (z:kotlin.Int) returnType:kotlin.String
VALUE_PARAMETER name:z index:0 type:kotlin.Int
BLOCK_BODY
VAR name:result type:kotlin.String [val]
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUS
$this: CONST String type=kotlin.String value=""
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
other: CONST String type=kotlin.String value="1"
other: GET_VAR 'z: kotlin.Int declared in <root>.test' type=kotlin.Int origin=null
RETURN type=kotlin.Nothing from='public final fun test (z: kotlin.Int): kotlin.String declared in <root>'
GET_VAR 'val result: kotlin.String [val] declared in <root>.test' type=kotlin.String origin=null
@@ -1418,6 +1418,12 @@ public class IrTextTestGenerated extends AbstractIrTextTest {
runTest("compiler/testData/ir/irText/expressions/kt47328.kt"); runTest("compiler/testData/ir/irText/expressions/kt47328.kt");
} }
@Test
@TestMetadata("kt47450.kt")
public void testKt47450() throws Exception {
runTest("compiler/testData/ir/irText/expressions/kt47450.kt");
}
@Test @Test
@TestMetadata("lambdaInCAO.kt") @TestMetadata("lambdaInCAO.kt")
public void testLambdaInCAO() throws Exception { public void testLambdaInCAO() throws Exception {
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.test.utils.MultiModuleInfoDumperImpl
import org.jetbrains.kotlin.test.utils.withExtension import org.jetbrains.kotlin.test.utils.withExtension
import org.jetbrains.kotlin.test.utils.withSuffixAndExtension import org.jetbrains.kotlin.test.utils.withSuffixAndExtension
import java.io.File import java.io.File
import java.io.PrintStream
class IrTextDumpHandler(testServices: TestServices) : AbstractIrHandler(testServices) { class IrTextDumpHandler(testServices: TestServices) : AbstractIrHandler(testServices) {
companion object { companion object {
@@ -42,6 +42,10 @@ class IrVerifier(private val assertions: Assertions) : IrElementVisitorVoid {
require(elements.add(element)) { "Non-unique element: ${element.render()}" } require(elements.add(element)) { "Non-unique element: ${element.render()}" }
element.acceptChildrenVoid(this) element.acceptChildrenVoid(this)
} }
override fun visitCall(expression: IrCall) {
visitElement(expression)
}
} }
fun verifyWithAssert(irFile: IrFile) { fun verifyWithAssert(irFile: IrFile) {
@@ -54,6 +58,10 @@ class IrVerifier(private val assertions: Assertions) : IrElementVisitorVoid {
element.acceptChildrenVoid(this) element.acceptChildrenVoid(this)
} }
override fun visitCall(expression: IrCall) {
expression.acceptChildrenVoid(this)
}
@OptIn(ObsoleteDescriptorBasedAPI::class) @OptIn(ObsoleteDescriptorBasedAPI::class)
override fun visitDeclaration(declaration: IrDeclarationBase) { override fun visitDeclaration(declaration: IrDeclarationBase) {
declaration.symbol.checkBinding("decl", declaration) declaration.symbol.checkBinding("decl", declaration)
@@ -1103,6 +1103,11 @@ public class KlibTextTestCaseGenerated extends AbstractKlibTextTestCase {
runTest("compiler/testData/ir/irText/expressions/kt47328.kt"); runTest("compiler/testData/ir/irText/expressions/kt47328.kt");
} }
@TestMetadata("kt47450.kt")
public void testKt47450() throws Exception {
runTest("compiler/testData/ir/irText/expressions/kt47450.kt");
}
@TestMetadata("lambdaInCAO.kt") @TestMetadata("lambdaInCAO.kt")
public void testLambdaInCAO() throws Exception { public void testLambdaInCAO() throws Exception {
runTest("compiler/testData/ir/irText/expressions/lambdaInCAO.kt"); runTest("compiler/testData/ir/irText/expressions/lambdaInCAO.kt");