IrConstructorCall support in JVM_IR, JS_IR, and FIR2IR

This commit is contained in:
Dmitry Petrov
2019-03-26 17:25:00 +03:00
parent 82128800c5
commit b78d1bb2b9
287 changed files with 9008 additions and 8128 deletions
@@ -150,7 +150,7 @@ internal class Fir2IrVisitor(
} }
file.annotations.forEach { file.annotations.forEach {
val irCall = it.accept(this@Fir2IrVisitor, data) as? IrCall ?: return@forEach val irCall = it.accept(this@Fir2IrVisitor, data) as? IrConstructorCall ?: return@forEach
annotations += irCall annotations += irCall
} }
} }
@@ -258,7 +258,7 @@ internal class Fir2IrVisitor(
} }
addFakeOverrides(klass, processedFunctionNames) addFakeOverrides(klass, processedFunctionNames)
klass.annotations.forEach { klass.annotations.forEach {
val irCall = it.accept(this@Fir2IrVisitor, null) as? IrCall ?: return@forEach val irCall = it.accept(this@Fir2IrVisitor, null) as? IrConstructorCall ?: return@forEach
annotations += irCall annotations += irCall
} }
} }
@@ -489,7 +489,7 @@ internal class Fir2IrVisitor(
setter = property.setter.accept(this@Fir2IrVisitor, type) as IrSimpleFunction setter = property.setter.accept(this@Fir2IrVisitor, type) as IrSimpleFunction
} }
property.annotations.forEach { property.annotations.forEach {
annotations += it.accept(this@Fir2IrVisitor, null) as IrCall annotations += it.accept(this@Fir2IrVisitor, null) as IrConstructorCall
} }
return this return this
} }
@@ -629,7 +629,8 @@ internal class Fir2IrVisitor(
val symbol = calleeReference.toSymbol(declarationStorage) val symbol = calleeReference.toSymbol(declarationStorage)
return typeRef.convertWithOffsets { startOffset, endOffset -> return typeRef.convertWithOffsets { startOffset, endOffset ->
when { when {
symbol is IrFunctionSymbol -> IrCallImpl(startOffset, endOffset, type, symbol) symbol is IrConstructorSymbol -> IrConstructorCallImpl.fromSymbolOwner(startOffset, endOffset, type, symbol)
symbol is IrSimpleFunctionSymbol -> IrCallImpl(startOffset, endOffset, type, symbol)
symbol is IrPropertySymbol && symbol.isBound -> { symbol is IrPropertySymbol && symbol.isBound -> {
val getter = symbol.owner.getter val getter = symbol.owner.getter
if (getter != null) { if (getter != null) {
@@ -660,7 +661,7 @@ internal class Fir2IrVisitor(
if (irConstructor == null) { if (irConstructor == null) {
IrErrorCallExpressionImpl(startOffset, endOffset, type, "No annotation constructor found: ${irClass.name}") IrErrorCallExpressionImpl(startOffset, endOffset, type, "No annotation constructor found: ${irClass.name}")
} else { } else {
IrCallImpl(startOffset, endOffset, type, irConstructor.symbol) IrConstructorCallImpl.fromSymbolDescriptor(startOffset, endOffset, type, irConstructor.symbol)
} }
} }
@@ -771,7 +772,9 @@ internal class Fir2IrVisitor(
startOffset, endOffset, anonymousClassType, IrStatementOrigin.OBJECT_LITERAL, startOffset, endOffset, anonymousClassType, IrStatementOrigin.OBJECT_LITERAL,
listOf( listOf(
anonymousClass, anonymousClass,
IrCallImpl(startOffset, endOffset, anonymousClassType, anonymousClass.constructors.first().symbol) IrConstructorCallImpl.fromSymbolOwner(
startOffset, endOffset, anonymousClassType, anonymousClass.constructors.first().symbol
)
) )
) )
} }
@@ -802,6 +802,11 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest {
runTest("compiler/testData/ir/irText/expressions/complexAugmentedAssignment.kt"); runTest("compiler/testData/ir/irText/expressions/complexAugmentedAssignment.kt");
} }
@TestMetadata("constructorWithOwnTypeParametersCall.kt")
public void testConstructorWithOwnTypeParametersCall() throws Exception {
runTest("compiler/testData/ir/irText/expressions/constructorWithOwnTypeParametersCall.kt");
}
@TestMetadata("contructorCall.kt") @TestMetadata("contructorCall.kt")
public void testContructorCall() throws Exception { public void testContructorCall() throws Exception {
runTest("compiler/testData/ir/irText/expressions/contructorCall.kt"); runTest("compiler/testData/ir/irText/expressions/contructorCall.kt");
@@ -887,6 +892,11 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest {
runTest("compiler/testData/ir/irText/expressions/funImportedFromObject.kt"); runTest("compiler/testData/ir/irText/expressions/funImportedFromObject.kt");
} }
@TestMetadata("genericConstructorCallWithTypeArguments.kt")
public void testGenericConstructorCallWithTypeArguments() throws Exception {
runTest("compiler/testData/ir/irText/expressions/genericConstructorCallWithTypeArguments.kt");
}
@TestMetadata("genericPropertyCall.kt") @TestMetadata("genericPropertyCall.kt")
public void testGenericPropertyCall() throws Exception { public void testGenericPropertyCall() throws Exception {
runTest("compiler/testData/ir/irText/expressions/genericPropertyCall.kt"); runTest("compiler/testData/ir/irText/expressions/genericPropertyCall.kt");
@@ -184,6 +184,11 @@ class ClosureAnnotator(declaration: IrDeclaration) {
processMemberAccess(expression.symbol.owner) processMemberAccess(expression.symbol.owner)
} }
override fun visitConstructorCall(expression: IrConstructorCall) {
expression.acceptChildrenVoid(this)
processMemberAccess(expression.symbol.owner)
}
override fun visitEnumConstructorCall(expression: IrEnumConstructorCall) { override fun visitEnumConstructorCall(expression: IrEnumConstructorCall) {
expression.acceptChildrenVoid(this) expression.acceptChildrenVoid(this)
processMemberAccess(expression.symbol.owner) processMemberAccess(expression.symbol.owner)
@@ -135,19 +135,17 @@ val innerClassConstructorCallsPhase = makeIrFilePhase(
class InnerClassConstructorCallsLowering(val context: BackendContext) : BodyLoweringPass { class InnerClassConstructorCallsLowering(val context: BackendContext) : BodyLoweringPass {
override fun lower(irBody: IrBody) { override fun lower(irBody: IrBody) {
irBody.transformChildrenVoid(object : IrElementTransformerVoid() { irBody.transformChildrenVoid(object : IrElementTransformerVoid() {
override fun visitCall(expression: IrCall): IrExpression { override fun visitConstructorCall(expression: IrConstructorCall): IrExpression {
expression.transformChildrenVoid(this) expression.transformChildrenVoid(this)
val dispatchReceiver = expression.dispatchReceiver ?: return expression val dispatchReceiver = expression.dispatchReceiver ?: return expression
val callee = expression.symbol as? IrConstructorSymbol ?: return expression val callee = expression.symbol
val parent = callee.owner.parent as? IrClass ?: return expression val parent = callee.owner.parentAsClass
if (!parent.isInner) return expression if (!parent.isInner) return expression
val newCallee = context.declarationFactory.getInnerClassConstructorWithOuterThisParameter(callee.owner) val newCallee = context.declarationFactory.getInnerClassConstructorWithOuterThisParameter(callee.owner)
val newCall = IrCallImpl( val newCall = IrConstructorCallImpl.fromSymbolOwner(
expression.startOffset, expression.endOffset, expression.type, newCallee.symbol, newCallee.descriptor, expression.startOffset, expression.endOffset, expression.type, newCallee.symbol, expression.origin
0, // TODO type arguments map
expression.origin
) )
newCall.putValueArgument(0, dispatchReceiver) newCall.putValueArgument(0, dispatchReceiver)
@@ -163,7 +161,7 @@ class InnerClassConstructorCallsLowering(val context: BackendContext) : BodyLowe
val dispatchReceiver = expression.dispatchReceiver ?: return expression val dispatchReceiver = expression.dispatchReceiver ?: return expression
val classConstructor = expression.symbol.owner val classConstructor = expression.symbol.owner
if (!(classConstructor.parent as IrClass).isInner) return expression if (!classConstructor.parentAsClass.isInner) return expression
val newCallee = context.declarationFactory.getInnerClassConstructorWithOuterThisParameter(classConstructor) val newCallee = context.declarationFactory.getInnerClassConstructorWithOuterThisParameter(classConstructor)
val newCall = IrDelegatingConstructorCallImpl( val newCall = IrDelegatingConstructorCallImpl(
@@ -289,7 +289,16 @@ class LocalDeclarationsLowering(
expression.transformChildrenVoid(this) expression.transformChildrenVoid(this)
val oldCallee = expression.symbol.owner val oldCallee = expression.symbol.owner
val newCallee = oldCallee.transformed ?: return expression val newCallee = (oldCallee.transformed ?: return expression) as IrSimpleFunction
return createNewCall(expression, newCallee).fillArguments2(expression, newCallee)
}
override fun visitConstructorCall(expression: IrConstructorCall): IrExpression {
expression.transformChildrenVoid(this)
val oldCallee = expression.symbol.owner
val newCallee = (oldCallee.transformed ?: return expression) as IrConstructor
return createNewCall(expression, newCallee).fillArguments2(expression, newCallee) return createNewCall(expression, newCallee).fillArguments2(expression, newCallee)
} }
@@ -470,6 +479,16 @@ class LocalDeclarationsLowering(
it.copyTypeArgumentsFrom(oldCall) it.copyTypeArgumentsFrom(oldCall)
} }
private fun createNewCall(oldCall: IrConstructorCall, newCallee: IrConstructor) =
IrConstructorCallImpl.fromSymbolOwner(
oldCall.startOffset, oldCall.endOffset,
newCallee.returnType,
newCallee.symbol,
oldCall.origin
).also {
it.copyTypeArgumentsFrom(oldCall)
}
private fun transformDeclarations() { private fun transformDeclarations() {
localFunctions.values.forEach { localFunctions.values.forEach {
createLiftedDeclaration(it) createLiftedDeclaration(it)
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.*
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.expressions.IrCall
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.types.*
import org.jetbrains.kotlin.ir.types.impl.buildSimpleType import org.jetbrains.kotlin.ir.types.impl.buildSimpleType
@@ -168,7 +169,7 @@ internal class DeepCopyIrTreeWithSymbolsForInliner(
kotlinType = null kotlinType = null
classifier = symbolRemapper.getReferencedClassifier(type.classifier) classifier = symbolRemapper.getReferencedClassifier(type.classifier)
arguments = remapTypeArguments(type.arguments) arguments = remapTypeArguments(type.arguments)
annotations = type.annotations.map { it.transform(copier, null) as IrCall } annotations = type.annotations.map { it.transform(copier, null) as IrConstructorCall }
} }
} }
} }
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer
import org.jetbrains.kotlin.ir.declarations.IrDeclarationWithName import org.jetbrains.kotlin.ir.declarations.IrDeclarationWithName
import org.jetbrains.kotlin.ir.expressions.IrCall import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.expressions.IrConst import org.jetbrains.kotlin.ir.expressions.IrConst
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
import org.jetbrains.kotlin.ir.util.getAnnotation import org.jetbrains.kotlin.ir.util.getAnnotation
import org.jetbrains.kotlin.ir.util.hasAnnotation import org.jetbrains.kotlin.ir.util.hasAnnotation
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
@@ -22,7 +23,7 @@ object JsAnnotations {
} }
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
private fun IrCall.getSingleConstStringArgument() = private fun IrConstructorCall.getSingleConstStringArgument() =
(getValueArgument(0) as IrConst<String>).value (getValueArgument(0) as IrConst<String>).value
fun IrAnnotationContainer.getJsModule(): String? = fun IrAnnotationContainer.getJsModule(): String? =
@@ -146,7 +146,7 @@ class AnnotationCodegen(
visitor.visitEnd() visitor.visitEnd()
} }
private fun genAnnotation(annotation: IrCall): String? { private fun genAnnotation(annotation: IrConstructorCall): String? {
val annotationClass = annotation.annotationClass val annotationClass = annotation.annotationClass
val rp = getRetentionPolicy(annotationClass) val rp = getRetentionPolicy(annotationClass)
if (rp == RetentionPolicy.SOURCE && !typeMapper.classBuilderMode.generateSourceRetentionAnnotations) { if (rp == RetentionPolicy.SOURCE && !typeMapper.classBuilderMode.generateSourceRetentionAnnotations) {
@@ -164,7 +164,7 @@ class AnnotationCodegen(
return asmTypeDescriptor return asmTypeDescriptor
} }
private fun genAnnotationArguments(annotation: IrCall, annotationVisitor: AnnotationVisitor) { private fun genAnnotationArguments(annotation: IrConstructorCall, annotationVisitor: AnnotationVisitor) {
val annotationClass = annotation.annotationClass val annotationClass = annotation.annotationClass
for (param in annotation.symbol.owner.valueParameters) { for (param in annotation.symbol.owner.valueParameters) {
val value = annotation.getValueArgument(param.index) val value = annotation.getValueArgument(param.index)
@@ -200,10 +200,10 @@ class AnnotationCodegen(
when (value) { when (value) {
is IrConst<*> -> annotationVisitor.visit(name, value.value) is IrConst<*> -> annotationVisitor.visit(name, value.value)
is IrCall -> { is IrConstructorCall -> {
val callee = value.symbol.owner val callee = value.symbol.owner
when { when {
callee is IrConstructor && callee.parentAsClass.isAnnotationClass -> { callee.parentAsClass.isAnnotationClass -> {
val internalAnnName = typeMapper.mapType(callee.returnType.toKotlinType()).descriptor val internalAnnName = typeMapper.mapType(callee.returnType.toKotlinType()).descriptor
val visitor = annotationVisitor.visitAnnotation(name, internalAnnName) val visitor = annotationVisitor.visitAnnotation(name, internalAnnName)
genAnnotationArguments(value, visitor) genAnnotationArguments(value, visitor)
@@ -268,10 +268,10 @@ class AnnotationCodegen(
} }
/* Temporary? */ /* Temporary? */
fun IrCall.applicableTargetSet() = fun IrConstructorCall.applicableTargetSet() =
annotationClass.applicableTargetSet() ?: KotlinTarget.DEFAULT_TARGET_SET annotationClass.applicableTargetSet() ?: KotlinTarget.DEFAULT_TARGET_SET
val IrCall.annotationClass get() = symbol.owner.parentAsClass val IrConstructorCall.annotationClass get() = symbol.owner.parentAsClass
} }
} }
@@ -294,7 +294,7 @@ private fun IrClass.getAnnotationRetention(): KotlinRetention? {
} }
// To be generalized to IrMemberAccessExpression as soon as properties get symbols. // To be generalized to IrMemberAccessExpression as soon as properties get symbols.
private fun IrCall.getValueArgument(name: Name): IrExpression? { private fun IrConstructorCall.getValueArgument(name: Name): IrExpression? {
val index = symbol.owner.valueParameters.find { it.name == name }?.index ?: return null val index = symbol.owner.valueParameters.find { it.name == name }?.index ?: return null
return getValueArgument(index) return getValueArgument(index)
} }
@@ -308,7 +308,7 @@ private fun IrClass.applicableTargetSet(): Set<KotlinTarget>? {
return loadAnnotationTargets(targetEntry) return loadAnnotationTargets(targetEntry)
} }
private fun loadAnnotationTargets(targetEntry: IrCall): Set<KotlinTarget>? { private fun loadAnnotationTargets(targetEntry: IrConstructorCall): Set<KotlinTarget>? {
val valueArgument = targetEntry.getValueArgument(TARGET_ALLOWED_TARGETS) val valueArgument = targetEntry.getValueArgument(TARGET_ALLOWED_TARGETS)
as? IrVararg ?: return null as? IrVararg ?: return null
return valueArgument.elements.filterIsInstance<IrGetEnumValue>().mapNotNull { return valueArgument.elements.filterIsInstance<IrGetEnumValue>().mapNotNull {
@@ -268,6 +268,9 @@ class ExpressionCodegen(
override fun visitCall(expression: IrCall, data: BlockInfo): PromisedValue { override fun visitCall(expression: IrCall, data: BlockInfo): PromisedValue {
expression.markLineNumber(startOffset = true) expression.markLineNumber(startOffset = true)
if (expression.descriptor is ConstructorDescriptor) {
throw AssertionError("IrCall with ConstructorDescriptor: ${expression.javaClass.simpleName}")
}
return generateCall(expression, expression.superQualifier, data) return generateCall(expression, expression.superQualifier, data)
} }
@@ -318,7 +321,8 @@ class ExpressionCodegen(
receiver?.apply { receiver?.apply {
callGenerator.genValueAndPut( callGenerator.genValueAndPut(
null, this, null, this,
if (isSuperCall) receiver.asmType else callable.dispatchReceiverType!!, if (isSuperCall) receiver.asmType else callable.dispatchReceiverType
?: throw AssertionError("No dispatch receiver type: ${expression.render()}"),
-1, this@ExpressionCodegen, data -1, this@ExpressionCodegen, data
) )
} }
@@ -1045,8 +1049,7 @@ class ExpressionCodegen(
private fun resolveToCallable(irCall: IrMemberAccessExpression, isSuper: Boolean): Callable { private fun resolveToCallable(irCall: IrMemberAccessExpression, isSuper: Boolean): Callable {
var descriptor = irCall.descriptor var descriptor = irCall.descriptor
if (descriptor is TypeAliasConstructorDescriptor) { if (descriptor is TypeAliasConstructorDescriptor) {
//TODO where is best to unwrap? throw AssertionError("TypeAliasConstructorDescriptor should be unwrapped in psi2ir: $descriptor")
descriptor = descriptor.underlyingConstructorDescriptor
} }
if (descriptor is PropertyDescriptor) { if (descriptor is PropertyDescriptor) {
descriptor = descriptor.getter!! descriptor = descriptor.getter!!
@@ -168,14 +168,11 @@ class JvmSharedVariablesManager(
val provider = getProvider(valueType) val provider = getProvider(valueType)
val refType = provider.getRefType(valueType) val refType = provider.getRefType(valueType)
val refConstructor = provider.refConstructor val refConstructor = provider.refConstructor
val typeArgumentsCount = refConstructor.parentAsClass.typeParameters.count()
val refConstructorCall = IrCallImpl( val refConstructorCall = IrConstructorCallImpl.fromSymbolOwner(
originalDeclaration.startOffset, originalDeclaration.endOffset,
refType, refType,
refConstructor.symbol, refConstructor.descriptor, refConstructor.symbol,
typeArgumentsCount = typeArgumentsCount, SHARED_VARIABLE_CONSTRUCTOR_CALL_ORIGIN
origin = SHARED_VARIABLE_CONSTRUCTOR_CALL_ORIGIN
).apply { ).apply {
List(refConstructor.parentAsClass.typeParameters.size) { i -> List(refConstructor.parentAsClass.typeParameters.size) { i ->
putTypeArgument(i, valueType) putTypeArgument(i, valueType)
@@ -24,11 +24,11 @@ import org.jetbrains.kotlin.ir.builders.declarations.buildValueParameter
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrEnumEntryImpl import org.jetbrains.kotlin.ir.declarations.impl.IrEnumEntryImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
import org.jetbrains.kotlin.ir.expressions.IrCall import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.expressions.IrGetEnumValue import org.jetbrains.kotlin.ir.expressions.IrGetEnumValue
import org.jetbrains.kotlin.ir.expressions.IrVararg import org.jetbrains.kotlin.ir.expressions.IrVararg
import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl
import org.jetbrains.kotlin.ir.expressions.impl.IrGetEnumValueImpl import org.jetbrains.kotlin.ir.expressions.impl.IrGetEnumValueImpl
import org.jetbrains.kotlin.ir.expressions.impl.IrVarargImpl import org.jetbrains.kotlin.ir.expressions.impl.IrVarargImpl
import org.jetbrains.kotlin.ir.symbols.impl.IrEnumEntrySymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrEnumEntrySymbolImpl
@@ -142,7 +142,7 @@ private class AdditionalClassAnnotationLowering(private val context: JvmBackendC
} }
irClass.annotations.add( irClass.annotations.add(
IrCallImpl( IrConstructorCallImpl.fromSymbolOwner(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, documentedConstructor.returnType, documentedConstructor.symbol UNDEFINED_OFFSET, UNDEFINED_OFFSET, documentedConstructor.returnType, documentedConstructor.symbol
) )
) )
@@ -160,7 +160,7 @@ private class AdditionalClassAnnotationLowering(private val context: JvmBackendC
val javaRetentionPolicy = annotationRetentionMap[kotlinRetentionPolicy] ?: rpRuntime val javaRetentionPolicy = annotationRetentionMap[kotlinRetentionPolicy] ?: rpRuntime
irClass.annotations.add( irClass.annotations.add(
IrCallImpl( IrConstructorCallImpl.fromSymbolOwner(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, retentionConstructor.returnType, retentionConstructor.symbol UNDEFINED_OFFSET, UNDEFINED_OFFSET, retentionConstructor.returnType, retentionConstructor.symbol
).apply { ).apply {
putValueArgument( putValueArgument(
@@ -228,7 +228,7 @@ private class AdditionalClassAnnotationLowering(private val context: JvmBackendC
} }
irClass.annotations.add( irClass.annotations.add(
IrCallImpl( IrConstructorCallImpl.fromSymbolOwner(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, targetConstructor.returnType, targetConstructor.symbol UNDEFINED_OFFSET, UNDEFINED_OFFSET, targetConstructor.returnType, targetConstructor.symbol
).apply { ).apply {
putValueArgument(0, vararg) putValueArgument(0, vararg)
@@ -239,7 +239,7 @@ private class AdditionalClassAnnotationLowering(private val context: JvmBackendC
} }
// To be generalized to IrMemberAccessExpression as soon as properties get symbols. // To be generalized to IrMemberAccessExpression as soon as properties get symbols.
private fun IrCall.getValueArgument(name: Name): IrExpression? { private fun IrConstructorCall.getValueArgument(name: Name): IrExpression? {
val index = symbol.owner.valueParameters.find { it.name == name }?.index ?: return null val index = symbol.owner.valueParameters.find { it.name == name }?.index ?: return null
return getValueArgument(index) return getValueArgument(index)
} }
@@ -253,7 +253,7 @@ private fun IrClass.applicableTargetSet(): Set<KotlinTarget>? {
return loadAnnotationTargets(targetEntry) return loadAnnotationTargets(targetEntry)
} }
private fun loadAnnotationTargets(targetEntry: IrCall): Set<KotlinTarget>? { private fun loadAnnotationTargets(targetEntry: IrConstructorCall): Set<KotlinTarget>? {
val valueArgument = targetEntry.getValueArgument(TARGET_ALLOWED_TARGETS) val valueArgument = targetEntry.getValueArgument(TARGET_ALLOWED_TARGETS)
as? IrVararg ?: return null as? IrVararg ?: return null
return valueArgument.elements.filterIsInstance<IrGetEnumValue>().mapNotNull { return valueArgument.elements.filterIsInstance<IrGetEnumValue>().mapNotNull {
@@ -399,7 +399,7 @@ private class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringP
private inner class InEnumEntryInitializer(enumEntry: IrEnumEntry) : InEnumEntry(enumEntry) { private inner class InEnumEntryInitializer(enumEntry: IrEnumEntry) : InEnumEntry(enumEntry) {
override fun createConstructorCall(startOffset: Int, endOffset: Int, loweredConstructor: IrConstructor) = override fun createConstructorCall(startOffset: Int, endOffset: Int, loweredConstructor: IrConstructor) =
IrCallImpl( IrConstructorCallImpl.fromSymbolDescriptor(
startOffset, startOffset,
endOffset, endOffset,
loweredConstructor.symbol.owner.parentAsClass.defaultType, loweredConstructor.symbol.owner.parentAsClass.defaultType,
@@ -260,7 +260,14 @@ private class SyntheticAccessorLowering(val context: JvmBackendContext) : IrElem
accessorSymbol as IrConstructorSymbol, accessorSymbol.descriptor, accessorSymbol as IrConstructorSymbol, accessorSymbol.descriptor,
oldExpression.typeArgumentsCount oldExpression.typeArgumentsCount
) )
else -> error("Need IrCall or IrDelegatingConstructor call, got $oldExpression") is IrConstructorCall ->
IrConstructorCallImpl.fromSymbolDescriptor(
oldExpression.startOffset, oldExpression.endOffset,
oldExpression.type,
accessorSymbol as IrConstructorSymbol
)
else ->
error("Unexpected IrFunctionAccessExpression: $oldExpression")
} }
newExpression.copyTypeArgumentsFrom(oldExpression) newExpression.copyTypeArgumentsFrom(oldExpression)
val receiverAndArgs = oldExpression.receiverAndArgs() val receiverAndArgs = oldExpression.receiverAndArgs()
@@ -246,10 +246,11 @@ class CallGenerator(statementGenerator: StatementGenerator) : StatementGenerator
): IrExpression = ): IrExpression =
call.callReceiver.call { dispatchReceiverValue, extensionReceiverValue -> call.callReceiver.call { dispatchReceiverValue, extensionReceiverValue ->
val irType = constructorDescriptor.returnType.toIrType() val irType = constructorDescriptor.returnType.toIrType()
IrConstructorCallImpl.fromSymbolDescriptor( IrConstructorCallImpl.fromSubstitutedDescriptor(
startOffset, endOffset, startOffset, endOffset,
irType, irType,
context.symbolTable.referenceConstructor(constructorDescriptor.original), context.symbolTable.referenceConstructor(constructorDescriptor.original),
constructorDescriptor,
origin origin
).run { ).run {
putTypeArguments(call.typeArguments) { it.toIrType() } putTypeArguments(call.typeArguments) { it.toIrType() }
@@ -235,13 +235,17 @@ fun IrBuilderWithScope.irCall(
} }
} }
fun IrBuilderWithScope.irCallConstructor(callee: IrConstructorSymbol, typeArguments: List<IrType>): IrCall = fun IrBuilderWithScope.irCallConstructor(callee: IrConstructorSymbol, typeArguments: List<IrType>): IrConstructorCall =
TODO("IrConstructorCall") IrConstructorCallImpl.fromSymbolOwner(
// IrCallImpl(startOffset, endOffset, callee.owner.returnType, callee, callee.descriptor, typeArguments.size, callee.owner.valueParameters.size).apply { startOffset,
// typeArguments.forEachIndexed { index, irType -> endOffset,
// this.putTypeArgument(index, irType) callee.owner.returnType,
// } callee
// } ).apply {
typeArguments.forEachIndexed { index, irType ->
this.putTypeArgument(index, irType)
}
}
fun IrBuilderWithScope.irCall(callee: IrSimpleFunctionSymbol, type: IrType): IrCall = fun IrBuilderWithScope.irCall(callee: IrSimpleFunctionSymbol, type: IrType): IrCall =
IrCallImpl(startOffset, endOffset, type, callee, callee.descriptor) IrCallImpl(startOffset, endOffset, type, callee, callee.descriptor)
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.util.parentAsClass
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
class IrConstructorCallImpl( class IrConstructorCallImpl(
@@ -31,14 +32,14 @@ class IrConstructorCallImpl(
visitor.visitConstructorCall(this, data) visitor.visitConstructorCall(this, data)
companion object { companion object {
fun fromSymbolDescriptor( fun fromSubstitutedDescriptor(
startOffset: Int, startOffset: Int,
endOffset: Int, endOffset: Int,
type: IrType, type: IrType,
constructorSymbol: IrConstructorSymbol, constructorSymbol: IrConstructorSymbol,
constructorDescriptor: ClassConstructorDescriptor,
origin: IrStatementOrigin? = null origin: IrStatementOrigin? = null
): IrConstructorCallImpl { ): IrConstructorCallImpl {
val constructorDescriptor = constructorSymbol.descriptor
val classTypeParametersCount = constructorDescriptor.constructedClass.original.declaredTypeParameters.size val classTypeParametersCount = constructorDescriptor.constructedClass.original.declaredTypeParameters.size
val totalTypeParametersCount = constructorDescriptor.typeParameters.size val totalTypeParametersCount = constructorDescriptor.typeParameters.size
val valueParametersCount = constructorDescriptor.valueParameters.size val valueParametersCount = constructorDescriptor.valueParameters.size
@@ -56,25 +57,46 @@ class IrConstructorCallImpl(
} }
fun fromSymbolDescriptor( fun fromSymbolDescriptor(
startOffset: Int,
endOffset: Int,
type: IrType,
constructorSymbol: IrConstructorSymbol,
origin: IrStatementOrigin? = null
): IrConstructorCallImpl =
fromSubstitutedDescriptor(startOffset, endOffset, type, constructorSymbol, constructorSymbol.descriptor, origin)
fun fromSymbolOwner(
startOffset: Int,
endOffset: Int,
type: IrType, type: IrType,
constructorSymbol: IrConstructorSymbol, constructorSymbol: IrConstructorSymbol,
origin: IrStatementOrigin? = null origin: IrStatementOrigin? = null
): IrConstructorCallImpl { ): IrConstructorCallImpl {
val constructorDescriptor = constructorSymbol.descriptor val constructor = constructorSymbol.owner
val classTypeParametersCount = constructorDescriptor.constructedClass.original.declaredTypeParameters.size val constructedClass = constructor.parentAsClass
val totalTypeParametersCount = constructorDescriptor.typeParameters.size val classTypeParametersCount = constructedClass.typeParameters.size
val valueParametersCount = constructorDescriptor.valueParameters.size val constructorTypeParametersCount = constructor.typeParameters.size
val totalTypeParametersCount = classTypeParametersCount + constructorTypeParametersCount
val valueParametersCount = constructor.valueParameters.size
return IrConstructorCallImpl( return IrConstructorCallImpl(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, startOffset, endOffset,
type, type,
constructorSymbol, constructorDescriptor, constructorSymbol,
constructorSymbol.descriptor,
totalTypeParametersCount, totalTypeParametersCount,
totalTypeParametersCount - classTypeParametersCount, constructorTypeParametersCount,
valueParametersCount, valueParametersCount,
origin origin
) )
} }
fun fromSymbolOwner(
type: IrType,
constructorSymbol: IrConstructorSymbol,
origin: IrStatementOrigin? = null
) =
fromSymbolOwner(UNDEFINED_OFFSET, UNDEFINED_OFFSET, type, constructorSymbol, origin)
} }
} }
@@ -44,7 +44,7 @@ class IrSimpleTypeBuilder {
var classifier: IrClassifierSymbol? = null var classifier: IrClassifierSymbol? = null
var hasQuestionMark = false var hasQuestionMark = false
var arguments: List<IrTypeArgument> = emptyList() var arguments: List<IrTypeArgument> = emptyList()
var annotations: List<IrCall> = emptyList() var annotations: List<IrConstructorCall> = emptyList()
var variance = Variance.INVARIANT var variance = Variance.INVARIANT
} }
@@ -49,7 +49,7 @@ FILE fqName:<root> fileName:/lambdaInDataClassDefaultParameter.kt
BLOCK_BODY BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any' DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]'
CALL 'private constructor <init> () [primary] declared in <root>.B.<init>.<no name provided>' type=<root>.B.<init>.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.B.<init>.<no name provided>' type=<root>.B.<init>.<no name provided> origin=null
BLOCK_BODY BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any' DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public [data] superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public [data] superTypes:[kotlin.Any]'
@@ -26,7 +26,7 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
BLOCK_BODY BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any' DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]'
CALL 'private constructor <init> () [primary] declared in <root>.test1.<no name provided>' type=<root>.test1.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test1.<no name provided>' type=<root>.test1.<no name provided> origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:IrErrorType FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
BLOCK_BODY BLOCK_BODY
@@ -47,7 +47,7 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
BLOCK_BODY BLOCK_BODY
ERROR_CALL 'Unresolved reference: <Ambiguity: println, [kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println]>#' type=IrErrorType ERROR_CALL 'Unresolved reference: <Ambiguity: println, [kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println]>#' type=IrErrorType
CONST String type=kotlin.String value="foo" CONST String type=kotlin.String value="foo"
CALL 'private constructor <init> () [primary] declared in <root>.test2.<no name provided>' type=<root>.test2.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test2.<no name provided>' type=<root>.test2.<no name provided> origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:IrErrorType FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
BLOCK_BODY BLOCK_BODY
@@ -98,7 +98,7 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
BLOCK_BODY BLOCK_BODY
ERROR_CALL 'Unresolved reference: <Ambiguity: println, [kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println]>#' type=IrErrorType ERROR_CALL 'Unresolved reference: <Ambiguity: println, [kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println]>#' type=IrErrorType
CONST String type=kotlin.String value="foo" CONST String type=kotlin.String value="foo"
CALL 'private constructor <init> () [primary] declared in <root>.Outer.test3.<no name provided>' type=<root>.Outer.test3.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.Outer.test3.<no name provided>' type=<root>.Outer.test3.<no name provided> origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden: overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
@@ -127,4 +127,4 @@ FILE fqName:<root> fileName:/objectLiteralExpressions.kt
BLOCK_BODY BLOCK_BODY
ERROR_CALL 'Unresolved reference: <Ambiguity: println, [kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println]>#' type=IrErrorType ERROR_CALL 'Unresolved reference: <Ambiguity: println, [kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println, kotlin/io/println]>#' type=IrErrorType
CONST String type=kotlin.String value="foo" CONST String type=kotlin.String value="foo"
CALL 'private constructor <init> () [primary] declared in <root>.test4.<no name provided>' type=<root>.test4.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test4.<no name provided>' type=<root>.test4.<no name provided> origin=null
@@ -55,15 +55,13 @@ FILE fqName:<root> fileName:/classLiteralInAnnotation.kt
BLOCK type=<root>.test2.<no name provided> origin=OBJECT_LITERAL BLOCK type=<root>.test2.<no name provided> origin=OBJECT_LITERAL
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any] CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]
annotations: annotations:
CALL 'public constructor <init> (klass: kotlin.reflect.KClass<*>) [primary] declared in <root>.A' type=<root>.A origin=null A(klass = <null>)
klass: GET_CLASS type=IrErrorType
ERROR_CALL 'Unresolved reference: <Unresolved name: T>#' type=IrErrorType
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.test2.<no name provided> $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.test2.<no name provided>
CONSTRUCTOR visibility:private <> () returnType:IrErrorType [primary] CONSTRUCTOR visibility:private <> () returnType:IrErrorType [primary]
BLOCK_BODY BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any' DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]'
CALL 'private constructor <init> () [primary] declared in <root>.test2.<no name provided>' type=<root>.test2.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test2.<no name provided>' type=<root>.test2.<no name provided> origin=null
PROPERTY name:test3 visibility:public modality:FINAL [var] PROPERTY name:test3 visibility:public modality:FINAL [var]
FUN name:<get-test3> visibility:public modality:FINAL <> () returnType:IrErrorType FUN name:<get-test3> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [var] correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [var]
@@ -72,15 +70,13 @@ FILE fqName:<root> fileName:/classLiteralInAnnotation.kt
BLOCK type=<root>.<get-test3>.<no name provided> origin=OBJECT_LITERAL BLOCK type=<root>.<get-test3>.<no name provided> origin=OBJECT_LITERAL
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any] CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]
annotations: annotations:
CALL 'public constructor <init> (klass: kotlin.reflect.KClass<*>) [primary] declared in <root>.A' type=<root>.A origin=null A(klass = <null>)
klass: GET_CLASS type=IrErrorType
ERROR_CALL 'Unresolved reference: <Unresolved name: T>#' type=IrErrorType
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.<get-test3>.<no name provided> $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.<get-test3>.<no name provided>
CONSTRUCTOR visibility:private <> () returnType:IrErrorType [primary] CONSTRUCTOR visibility:private <> () returnType:IrErrorType [primary]
BLOCK_BODY BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any' DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]'
CALL 'private constructor <init> () [primary] declared in <root>.<get-test3>.<no name provided>' type=<root>.<get-test3>.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.<get-test3>.<no name provided>' type=<root>.<get-test3>.<no name provided> origin=null
FUN name:<set-test3> visibility:public modality:FINAL <> (v:IrErrorType) returnType:kotlin.Unit FUN name:<set-test3> visibility:public modality:FINAL <> (v:IrErrorType) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [var] correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [var]
VALUE_PARAMETER name:v index:0 type:IrErrorType VALUE_PARAMETER name:v index:0 type:IrErrorType
@@ -88,12 +84,10 @@ FILE fqName:<root> fileName:/classLiteralInAnnotation.kt
BLOCK type=<root>.<set-test3>.<no name provided> origin=OBJECT_LITERAL BLOCK type=<root>.<set-test3>.<no name provided> origin=OBJECT_LITERAL
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any] CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]
annotations: annotations:
CALL 'public constructor <init> (klass: kotlin.reflect.KClass<*>) [primary] declared in <root>.A' type=<root>.A origin=null A(klass = <null>)
klass: GET_CLASS type=IrErrorType
ERROR_CALL 'Unresolved reference: <Unresolved name: T>#' type=IrErrorType
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.<set-test3>.<no name provided> $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.<set-test3>.<no name provided>
CONSTRUCTOR visibility:private <> () returnType:IrErrorType [primary] CONSTRUCTOR visibility:private <> () returnType:IrErrorType [primary]
BLOCK_BODY BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any' DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]'
CALL 'private constructor <init> () [primary] declared in <root>.<set-test3>.<no name provided>' type=<root>.<set-test3>.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.<set-test3>.<no name provided>' type=<root>.<set-test3>.<no name provided> origin=null
@@ -29,8 +29,7 @@ FILE fqName:<root> fileName:/classesWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:TestClass modality:FINAL visibility:public superTypes:[kotlin.Any] CLASS CLASS name:TestClass modality:FINAL visibility:public superTypes:[kotlin.Any]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="class"
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestClass $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestClass
CONSTRUCTOR visibility:public <> () returnType:<root>.TestClass [primary] CONSTRUCTOR visibility:public <> () returnType:<root>.TestClass [primary]
BLOCK_BODY BLOCK_BODY
@@ -51,8 +50,7 @@ FILE fqName:<root> fileName:/classesWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS INTERFACE name:TestInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any] CLASS INTERFACE name:TestInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="interface"
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestInterface $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestInterface
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden: overridden:
@@ -69,8 +67,7 @@ FILE fqName:<root> fileName:/classesWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS OBJECT name:TestObject modality:FINAL visibility:public superTypes:[kotlin.Any] CLASS OBJECT name:TestObject modality:FINAL visibility:public superTypes:[kotlin.Any]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="object"
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestObject $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestObject
CONSTRUCTOR visibility:private <> () returnType:<root>.TestObject [primary] CONSTRUCTOR visibility:private <> () returnType:<root>.TestObject [primary]
BLOCK_BODY BLOCK_BODY
@@ -97,8 +94,7 @@ FILE fqName:<root> fileName:/classesWithAnnotations.kt
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]'
CLASS OBJECT name:TestCompanion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any] CLASS OBJECT name:TestCompanion modality:FINAL visibility:public [companion] superTypes:[kotlin.Any]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="companion"
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host.TestCompanion $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host.TestCompanion
CONSTRUCTOR visibility:private <> () returnType:<root>.Host.TestCompanion [primary] CONSTRUCTOR visibility:private <> () returnType:<root>.Host.TestCompanion [primary]
BLOCK_BODY BLOCK_BODY
@@ -132,8 +128,7 @@ FILE fqName:<root> fileName:/classesWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS ENUM_CLASS name:TestEnum modality:FINAL visibility:public superTypes:[kotlin.Enum] CLASS ENUM_CLASS name:TestEnum modality:FINAL visibility:public superTypes:[kotlin.Enum]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="enum"
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum
CONSTRUCTOR visibility:private <> () returnType:<root>.TestEnum [primary] CONSTRUCTOR visibility:private <> () returnType:<root>.TestEnum [primary]
BLOCK_BODY BLOCK_BODY
@@ -163,8 +158,7 @@ FILE fqName:<root> fileName:/classesWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum $this: VALUE_PARAMETER name:<this> type:kotlin.Enum
CLASS ANNOTATION_CLASS name:TestAnnotation modality:FINAL visibility:public superTypes:[kotlin.Annotation] CLASS ANNOTATION_CLASS name:TestAnnotation modality:FINAL visibility:public superTypes:[kotlin.Annotation]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="annotation"
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestAnnotation $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestAnnotation
CONSTRUCTOR visibility:public <> () returnType:<root>.TestAnnotation [primary] CONSTRUCTOR visibility:public <> () returnType:<root>.TestAnnotation [primary]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
@@ -17,7 +17,7 @@ FILE fqName:<root> fileName:/delegateFieldWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:test1 visibility:public modality:FINAL [delegated,val] PROPERTY name:test1 visibility:public modality:FINAL [delegated,val]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in <root>.Ann' type=<root>.Ann origin=null Ann
FIELD PROPERTY_BACKING_FIELD name:test1 type:IrErrorType visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test1 type:IrErrorType visibility:public [final,static]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:IrErrorType FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [delegated,val] correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [delegated,val]
@@ -83,8 +83,7 @@ FILE fqName:<root> fileName:/delegatedPropertyAccessorsWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:test1 visibility:public modality:FINAL [delegated,val] PROPERTY name:test1 visibility:public modality:FINAL [delegated,val]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null A(x = <null>)
x: CONST String type=IrErrorType value="test1.get"
FIELD PROPERTY_BACKING_FIELD name:test1 type:IrErrorType visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test1 type:IrErrorType visibility:public [final,static]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:IrErrorType FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [delegated,val] correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [delegated,val]
@@ -93,24 +92,9 @@ FILE fqName:<root> fileName:/delegatedPropertyAccessorsWithAnnotations.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:IrErrorType visibility:public [final,static] ' type=IrErrorType origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:IrErrorType visibility:public [final,static] ' type=IrErrorType origin=null
PROPERTY name:test2 visibility:public modality:FINAL [delegated,var] PROPERTY name:test2 visibility:public modality:FINAL [delegated,var]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null A(x = <null>)
x: CONST String type=IrErrorType value="test2.get" A(x = <null>)
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null A(x = <null>)
x: CONST String type=IrErrorType value="test2.set"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=IrErrorType value="test2.set.param"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=IrErrorType value="test2.get"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=IrErrorType value="test2.set"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=IrErrorType value="test2.set.param"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=IrErrorType value="test2.get"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=IrErrorType value="test2.set"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=IrErrorType value="test2.set.param"
FIELD PROPERTY_BACKING_FIELD name:test2 type:IrErrorType visibility:public [static] FIELD PROPERTY_BACKING_FIELD name:test2 type:IrErrorType visibility:public [static]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:IrErrorType FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [delegated,var] correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [delegated,var]
@@ -35,8 +35,7 @@ FILE fqName:<root> fileName:/enumEntriesWithAnnotations.kt
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum modality:FINAL visibility:public superTypes:[kotlin.Enum]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:TestEnum modality:FINAL visibility:public superTypes:[kotlin.Enum]'
CLASS ENUM_ENTRY name:ENTRY1 modality:FINAL visibility:public superTypes:[kotlin.Any] CLASS ENUM_ENTRY name:ENTRY1 modality:FINAL visibility:public superTypes:[kotlin.Any]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="ENTRY1"
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum.ENTRY1 $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum.ENTRY1
CONSTRUCTOR visibility:public <> () returnType:<root>.TestEnum.ENTRY1 [primary] CONSTRUCTOR visibility:public <> () returnType:<root>.TestEnum.ENTRY1 [primary]
BLOCK_BODY BLOCK_BODY
@@ -57,8 +56,7 @@ FILE fqName:<root> fileName:/enumEntriesWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS ENUM_ENTRY name:ENTRY2 modality:FINAL visibility:public superTypes:[kotlin.Any] CLASS ENUM_ENTRY name:ENTRY2 modality:FINAL visibility:public superTypes:[kotlin.Any]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="ENTRY2"
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum.ENTRY2 $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.TestEnum.ENTRY2
CONSTRUCTOR visibility:public <> () returnType:<root>.TestEnum.ENTRY2 [primary] CONSTRUCTOR visibility:public <> () returnType:<root>.TestEnum.ENTRY2 [primary]
BLOCK_BODY BLOCK_BODY
@@ -29,8 +29,7 @@ FILE fqName:<root> fileName:/fieldsWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:testVal visibility:public modality:FINAL [val] PROPERTY name:testVal visibility:public modality:FINAL [val]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="testVal.field"
FIELD PROPERTY_BACKING_FIELD name:testVal type:kotlin.String visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:testVal type:kotlin.String visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CONST String type=kotlin.String value="a val" CONST String type=kotlin.String value="a val"
@@ -41,8 +40,7 @@ FILE fqName:<root> fileName:/fieldsWithAnnotations.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:testVal type:kotlin.String visibility:public [final,static] ' type=kotlin.String origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:testVal type:kotlin.String visibility:public [final,static] ' type=kotlin.String origin=null
PROPERTY name:testVar visibility:public modality:FINAL [var] PROPERTY name:testVar visibility:public modality:FINAL [var]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="testVar.field"
FIELD PROPERTY_BACKING_FIELD name:testVar type:kotlin.String visibility:public [static] FIELD PROPERTY_BACKING_FIELD name:testVar type:kotlin.String visibility:public [static]
EXPRESSION_BODY EXPRESSION_BODY
CONST String type=kotlin.String value="a var" CONST String type=kotlin.String value="a var"
@@ -1,7 +1,6 @@
FILE fqName:test fileName:/fileAnnotations.kt FILE fqName:test fileName:/fileAnnotations.kt
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in test.A' type=test.A origin=null A(x = <null>)
x: CONST String type=kotlin.String value="File annotation"
CLASS ANNOTATION_CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Annotation] CLASS ANNOTATION_CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Annotation]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:test.A $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:test.A
CONSTRUCTOR visibility:public <> (x:kotlin.String) returnType:test.A [primary] CONSTRUCTOR visibility:public <> (x:kotlin.String) returnType:test.A [primary]
@@ -24,7 +24,7 @@ FILE fqName:<root> fileName:/primaryConstructorParameterWithAnnotations.kt
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:x visibility:public modality:FINAL [val] PROPERTY name:x visibility:public modality:FINAL [val]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in <root>.Ann' type=<root>.Ann origin=null Ann
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public [final] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public [final]
EXPRESSION_BODY EXPRESSION_BODY
GET_VAR 'x: kotlin.Int declared in <root>.Test.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER GET_VAR 'x: kotlin.Int declared in <root>.Test.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
@@ -29,8 +29,7 @@ FILE fqName:<root> fileName:/propertiesWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:testVal visibility:public modality:FINAL [val] PROPERTY name:testVal visibility:public modality:FINAL [val]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="testVal.property"
FIELD PROPERTY_BACKING_FIELD name:testVal type:kotlin.String visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:testVal type:kotlin.String visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CONST String type=kotlin.String value="" CONST String type=kotlin.String value=""
@@ -37,8 +37,7 @@ FILE fqName:<root> fileName:/propertyAccessorsFromClassHeaderWithAnnotations.kt
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:x visibility:public modality:FINAL [val] PROPERTY name:x visibility:public modality:FINAL [val]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null A(x = <null>)
x: CONST String type=kotlin.Int value="C.x.get"
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public [final] FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public [final]
EXPRESSION_BODY EXPRESSION_BODY
GET_VAR 'x: kotlin.Int declared in <root>.C.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER GET_VAR 'x: kotlin.Int declared in <root>.C.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
@@ -51,14 +50,8 @@ FILE fqName:<root> fileName:/propertyAccessorsFromClassHeaderWithAnnotations.kt
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-x>' type=<root>.C origin=null receiver: GET_VAR '<this>: <root>.C declared in <root>.C.<get-x>' type=<root>.C origin=null
PROPERTY name:y visibility:public modality:FINAL [var] PROPERTY name:y visibility:public modality:FINAL [var]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null A(x = <null>)
x: CONST String type=kotlin.Int value="C.y.get" A(x = <null>)
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=kotlin.Int value="C.y.set"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=kotlin.Int value="C.y.get"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.A' type=<root>.A origin=null
x: CONST String type=kotlin.Int value="C.y.set"
FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:public FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:public
EXPRESSION_BODY EXPRESSION_BODY
GET_VAR 'y: kotlin.Int declared in <root>.C.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER GET_VAR 'y: kotlin.Int declared in <root>.C.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
@@ -45,8 +45,7 @@ FILE fqName:<root> fileName:/propertyAccessorsWithAnnotations.kt
BLOCK_BODY BLOCK_BODY
PROPERTY name:test3 visibility:public modality:FINAL [val] PROPERTY name:test3 visibility:public modality:FINAL [val]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="test3.get"
FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.String visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.String visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CONST String type=kotlin.String value="" CONST String type=kotlin.String value=""
@@ -57,14 +56,8 @@ FILE fqName:<root> fileName:/propertyAccessorsWithAnnotations.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.String visibility:public [final,static] ' type=kotlin.String origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.String visibility:public [final,static] ' type=kotlin.String origin=null
PROPERTY name:test4 visibility:public modality:FINAL [var] PROPERTY name:test4 visibility:public modality:FINAL [var]
annotations: annotations:
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null TestAnn(x = <null>)
x: CONST String type=kotlin.String value="test4.get" TestAnn(x = <null>)
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null
x: CONST String type=kotlin.String value="test4.set"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null
x: CONST String type=kotlin.String value="test4.get"
CALL 'public constructor <init> (x: kotlin.String) [primary] declared in <root>.TestAnn' type=<root>.TestAnn origin=null
x: CONST String type=kotlin.String value="test4.set"
FIELD PROPERTY_BACKING_FIELD name:test4 type:kotlin.String visibility:public [static] FIELD PROPERTY_BACKING_FIELD name:test4 type:kotlin.String visibility:public [static]
EXPRESSION_BODY EXPRESSION_BODY
CONST String type=kotlin.String value="" CONST String type=kotlin.String value=""
@@ -17,7 +17,7 @@ FILE fqName:<root> fileName:/propertySetterParameterWithAnnotations.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:p visibility:public modality:FINAL [var] PROPERTY name:p visibility:public modality:FINAL [var]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in <root>.AnnParam' type=<root>.AnnParam origin=null AnnParam
FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public [static] FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public [static]
EXPRESSION_BODY EXPRESSION_BODY
CONST Int type=kotlin.Int value=0 CONST Int type=kotlin.Int value=0
@@ -41,7 +41,7 @@ FILE fqName:<root> fileName:/propertySetterParameterWithAnnotations.kt
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[kotlin.Any]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:p visibility:public modality:FINAL [var] PROPERTY name:p visibility:public modality:FINAL [var]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in <root>.AnnParam' type=<root>.AnnParam origin=null AnnParam
FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public
EXPRESSION_BODY EXPRESSION_BODY
GET_VAR 'p: kotlin.Int declared in <root>.C.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER GET_VAR 'p: kotlin.Int declared in <root>.C.<init>' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
@@ -59,9 +59,8 @@ FILE fqName:<root> fileName:/constValInitializers.kt
PROPERTY name:STR4 visibility:public modality:FINAL [const,val] PROPERTY name:STR4 visibility:public modality:FINAL [const,val]
FIELD PROPERTY_BACKING_FIELD name:STR4 type:kotlin.String visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:STR4 type:kotlin.String visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
STRING_CONCATENATION type=kotlin.String CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
CALL 'public final fun <get-STR1> (): kotlin.String declared in <root>' type=kotlin.String origin=null other: CALL 'public final fun <get-STR2> (): kotlin.String declared in <root>' type=kotlin.String origin=null
CALL 'public final fun <get-STR2> (): kotlin.String declared in <root>' type=kotlin.String origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-STR4> visibility:public modality:FINAL <> () returnType:kotlin.String FUN DEFAULT_PROPERTY_ACCESSOR name:<get-STR4> visibility:public modality:FINAL <> () returnType:kotlin.String
correspondingProperty: PROPERTY name:STR4 visibility:public modality:FINAL [const,val] correspondingProperty: PROPERTY name:STR4 visibility:public modality:FINAL [const,val]
BLOCK_BODY BLOCK_BODY
@@ -61,8 +61,7 @@ FILE fqName:<root> fileName:/local.kt
VALUE_PARAMETER name:property index:1 type:kotlin.Any? VALUE_PARAMETER name:property index:1 type:kotlin.Any?
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun provideDelegate (thisRef: kotlin.Any?, property: kotlin.Any?): <root>.Delegate declared in <root>.DelegateProvider' RETURN type=kotlin.Nothing from='public final fun provideDelegate (thisRef: kotlin.Any?, property: kotlin.Any?): <root>.Delegate declared in <root>.DelegateProvider'
CALL 'public constructor <init> (value: kotlin.String) [primary] declared in <root>.Delegate' type=<root>.Delegate origin=null CONSTRUCTOR_CALL 'public constructor <init> (value: kotlin.String) [primary] declared in <root>.Delegate' type=<root>.Delegate origin=null
value: CALL 'public final fun <get-value> (): kotlin.String declared in <root>.DelegateProvider' type=kotlin.String origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden: overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
@@ -61,8 +61,7 @@ FILE fqName:<root> fileName:/member.kt
VALUE_PARAMETER name:property index:1 type:kotlin.Any? VALUE_PARAMETER name:property index:1 type:kotlin.Any?
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun provideDelegate (thisRef: kotlin.Any?, property: kotlin.Any?): <root>.Delegate declared in <root>.DelegateProvider' RETURN type=kotlin.Nothing from='public final fun provideDelegate (thisRef: kotlin.Any?, property: kotlin.Any?): <root>.Delegate declared in <root>.DelegateProvider'
CALL 'public constructor <init> (value: kotlin.String) [primary] declared in <root>.Delegate' type=<root>.Delegate origin=null CONSTRUCTOR_CALL 'public constructor <init> (value: kotlin.String) [primary] declared in <root>.Delegate' type=<root>.Delegate origin=null
value: CALL 'public final fun <get-value> (): kotlin.String declared in <root>.DelegateProvider' type=kotlin.String origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden: overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
@@ -61,8 +61,7 @@ FILE fqName:<root> fileName:/topLevel.kt
VALUE_PARAMETER name:property index:1 type:kotlin.Any? VALUE_PARAMETER name:property index:1 type:kotlin.Any?
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun provideDelegate (thisRef: kotlin.Any?, property: kotlin.Any?): <root>.Delegate declared in <root>.DelegateProvider' RETURN type=kotlin.Nothing from='public final fun provideDelegate (thisRef: kotlin.Any?, property: kotlin.Any?): <root>.Delegate declared in <root>.DelegateProvider'
CALL 'public constructor <init> (value: kotlin.String) [primary] declared in <root>.Delegate' type=<root>.Delegate origin=null CONSTRUCTOR_CALL 'public constructor <init> (value: kotlin.String) [primary] declared in <root>.Delegate' type=<root>.Delegate origin=null
value: CALL 'public final fun <get-value> (): kotlin.String declared in <root>.DelegateProvider' type=kotlin.String origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden: overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
@@ -36,7 +36,7 @@ FILE fqName:<root> fileName:/augmentedAssignment2.kt
PROPERTY name:p visibility:public modality:FINAL [val] PROPERTY name:p visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:p type:<root>.A visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:p type:<root>.A visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:<root>.A FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:<root>.A
correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:p visibility:public modality:FINAL [val]
BLOCK_BODY BLOCK_BODY
@@ -45,7 +45,7 @@ FILE fqName:<root> fileName:/augmentedAssignment2.kt
FUN name:testVariable visibility:public modality:FINAL <> () returnType:kotlin.Unit FUN name:testVariable visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY BLOCK_BODY
VAR name:a type:<root>.A [val] VAR name:a type:<root>.A [val]
CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null
ERROR_CALL 'Unresolved reference: R|<local>/a|' type=IrErrorType ERROR_CALL 'Unresolved reference: R|<local>/a|' type=IrErrorType
ERROR_CALL 'Unresolved reference: R|<local>/a|' type=IrErrorType ERROR_CALL 'Unresolved reference: R|<local>/a|' type=IrErrorType
ERROR_CALL 'Unresolved reference: R|<local>/a|' type=IrErrorType ERROR_CALL 'Unresolved reference: R|<local>/a|' type=IrErrorType
@@ -29,7 +29,7 @@ FILE fqName:<root> fileName:/augmentedAssignmentWithExpression.kt
FUN name:foo visibility:public modality:FINAL <> () returnType:<root>.Host FUN name:foo visibility:public modality:FINAL <> () returnType:<root>.Host
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo (): <root>.Host declared in <root>' RETURN type=kotlin.Nothing from='public final fun foo (): <root>.Host declared in <root>'
CALL 'public constructor <init> () [primary] declared in <root>.Host' type=<root>.Host origin=null CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.Host' type=<root>.Host origin=null
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Unit FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY BLOCK_BODY
ERROR_CALL 'Unresolved reference: this#' type=IrErrorType ERROR_CALL 'Unresolved reference: this#' type=IrErrorType
+8 -8
View File
@@ -1,12 +1,12 @@
FILE fqName:<root> fileName:/bangbang.kt FILE fqName:<root> fileName:/bangbang.kt
FUN name:test1 visibility:public modality:FINAL <> (a:kotlin.Any?) returnType:kotlin.Nothing FUN name:test1 visibility:public modality:FINAL <> (a:kotlin.Any?) returnType:IrErrorType
VALUE_PARAMETER name:a index:0 type:kotlin.Any? VALUE_PARAMETER name:a index:0 type:kotlin.Any?
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (a: kotlin.Any?): kotlin.Nothing declared in <root>' RETURN type=kotlin.Nothing from='public final fun test1 (a: kotlin.Any?): IrErrorType declared in <root>'
BLOCK type=kotlin.Nothing origin=EXCLEXCL BLOCK type=IrErrorType origin=EXCLEXCL
VAR name:<bangbang> type:kotlin.Any? [val] VAR name:<bangbang> type:kotlin.Any? [val]
GET_VAR 'a: kotlin.Any? declared in <root>.test1' type=kotlin.Any? origin=null GET_VAR 'a: kotlin.Any? declared in <root>.test1' type=kotlin.Any? origin=null
WHEN type=kotlin.Nothing origin=EXCLEXCL WHEN type=IrErrorType origin=EXCLEXCL
BRANCH BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val <bangbang>: kotlin.Any? [val] declared in <root>.test1' type=kotlin.Any? origin=null arg0: GET_VAR 'val <bangbang>: kotlin.Any? [val] declared in <root>.test1' type=kotlin.Any? origin=null
@@ -16,14 +16,14 @@ FILE fqName:<root> fileName:/bangbang.kt
BRANCH BRANCH
if: CONST Boolean type=kotlin.Boolean value=true if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val <bangbang>: kotlin.Any? [val] declared in <root>.test1' type=kotlin.Any? origin=null then: GET_VAR 'val <bangbang>: kotlin.Any? [val] declared in <root>.test1' type=kotlin.Any? origin=null
FUN name:test2 visibility:public modality:FINAL <> (a:kotlin.Any?) returnType:kotlin.Nothing FUN name:test2 visibility:public modality:FINAL <> (a:kotlin.Any?) returnType:IrErrorType
VALUE_PARAMETER name:a index:0 type:kotlin.Any? VALUE_PARAMETER name:a index:0 type:kotlin.Any?
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (a: kotlin.Any?): kotlin.Nothing declared in <root>' RETURN type=kotlin.Nothing from='public final fun test2 (a: kotlin.Any?): IrErrorType declared in <root>'
BLOCK type=kotlin.Nothing origin=EXCLEXCL BLOCK type=IrErrorType origin=EXCLEXCL
VAR name:<bangbang> type:kotlin.Int [val] VAR name:<bangbang> type:kotlin.Int [val]
CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null
WHEN type=kotlin.Nothing origin=EXCLEXCL WHEN type=IrErrorType origin=EXCLEXCL
BRANCH BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val <bangbang>: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null arg0: GET_VAR 'val <bangbang>: kotlin.Int [val] declared in <root>.test2' type=kotlin.Int origin=null
@@ -45,11 +45,11 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
WHILE label=L origin=WHILE_LOOP WHILE label=L origin=WHILE_LOOP
condition: CONST Boolean type=kotlin.Boolean value=true condition: CONST Boolean type=kotlin.Boolean value=true
body: BLOCK type=kotlin.Unit origin=null body: BLOCK type=kotlin.Unit origin=null
VAR name:<range> type:kotlin.Nothing [val] VAR name:<range> type:IrErrorType [val]
BLOCK type=kotlin.Nothing origin=ELVIS BLOCK type=IrErrorType origin=ELVIS
VAR name:<elvis> type:kotlin.collections.List<kotlin.String>? [val] VAR name:<elvis> type:kotlin.collections.List<kotlin.String>? [val]
GET_VAR 'ss: kotlin.collections.List<kotlin.String>? declared in <root>.test3' type=kotlin.collections.List<kotlin.String>? origin=null GET_VAR 'ss: kotlin.collections.List<kotlin.String>? declared in <root>.test3' type=kotlin.collections.List<kotlin.String>? origin=null
WHEN type=kotlin.Nothing origin=ELVIS WHEN type=IrErrorType origin=ELVIS
BRANCH BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val <elvis>: kotlin.collections.List<kotlin.String>? [val] declared in <root>.test3' type=kotlin.collections.List<kotlin.String>? origin=null arg0: GET_VAR 'val <elvis>: kotlin.collections.List<kotlin.String>? [val] declared in <root>.test3' type=kotlin.collections.List<kotlin.String>? origin=null
@@ -71,11 +71,11 @@ FILE fqName:<root> fileName:/breakContinueInLoopHeader.kt
WHILE label=L origin=WHILE_LOOP WHILE label=L origin=WHILE_LOOP
condition: CONST Boolean type=kotlin.Boolean value=true condition: CONST Boolean type=kotlin.Boolean value=true
body: BLOCK type=kotlin.Unit origin=null body: BLOCK type=kotlin.Unit origin=null
VAR name:<range> type:kotlin.Nothing [val] VAR name:<range> type:IrErrorType [val]
BLOCK type=kotlin.Nothing origin=ELVIS BLOCK type=IrErrorType origin=ELVIS
VAR name:<elvis> type:kotlin.collections.List<kotlin.String>? [val] VAR name:<elvis> type:kotlin.collections.List<kotlin.String>? [val]
GET_VAR 'ss: kotlin.collections.List<kotlin.String>? declared in <root>.test4' type=kotlin.collections.List<kotlin.String>? origin=null GET_VAR 'ss: kotlin.collections.List<kotlin.String>? declared in <root>.test4' type=kotlin.collections.List<kotlin.String>? origin=null
WHEN type=kotlin.Nothing origin=ELVIS WHEN type=IrErrorType origin=ELVIS
BRANCH BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val <elvis>: kotlin.collections.List<kotlin.String>? [val] declared in <root>.test4' type=kotlin.collections.List<kotlin.String>? origin=null arg0: GET_VAR 'val <elvis>: kotlin.collections.List<kotlin.String>? [val] declared in <root>.test4' type=kotlin.collections.List<kotlin.String>? origin=null
@@ -23,6 +23,6 @@ FILE fqName:<root> fileName:/classReference.kt
GET_CLASS type=IrErrorType GET_CLASS type=IrErrorType
ERROR_CALL 'Unresolved reference: <Unresolved name: A>#' type=IrErrorType ERROR_CALL 'Unresolved reference: <Unresolved name: A>#' type=IrErrorType
GET_CLASS type=IrErrorType GET_CLASS type=IrErrorType
CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null
ERROR_CALL 'Unresolved reference: <Unresolved name: java>#' type=IrErrorType ERROR_CALL 'Unresolved reference: <Unresolved name: java>#' type=IrErrorType
ERROR_CALL 'Unresolved reference: <Unresolved name: java>#' type=IrErrorType ERROR_CALL 'Unresolved reference: <Unresolved name: java>#' type=IrErrorType
@@ -4,19 +4,17 @@ FILE fqName:<root> fileName:/constructorWithOwnTypeParametersCall.kt
RETURN type=kotlin.Nothing from='public final fun testKotlin (): <root>.K1.K2<kotlin.String, kotlin.Int> declared in <root>' RETURN type=kotlin.Nothing from='public final fun testKotlin (): <root>.K1.K2<kotlin.String, kotlin.Int> declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.K1.K2' type=<root>.K1.K2<kotlin.String, kotlin.Int> origin=null CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.K1.K2' type=<root>.K1.K2<kotlin.String, kotlin.Int> origin=null
<class: T2>: kotlin.String <class: T2>: kotlin.String
$outer: TYPE_OP type=<root>.K1<T1 of <root>.K1> origin=IMPLICIT_CAST typeOperand=<root>.K1<T1 of <root>.K1> $outer: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.K1' type=<root>.K1<kotlin.Int> origin=null
CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.K1' type=<root>.K1<kotlin.Int> origin=null <class: T1>: kotlin.Int
<class: T1>: kotlin.Int
FUN name:testJava visibility:public modality:FINAL <> () returnType:<root>.J1.J2<kotlin.Double, kotlin.Int> FUN name:testJava visibility:public modality:FINAL <> () returnType:<root>.J1.J2<kotlin.Double, kotlin.Int>
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testJava (): <root>.J1.J2<kotlin.Double, kotlin.Int> declared in <root>' RETURN type=kotlin.Nothing from='public final fun testJava (): <root>.J1.J2<kotlin.Double, kotlin.Int> declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> <Y2> () declared in <root>.J1.J2' type=<root>.J1.J2<kotlin.Double, kotlin.Int> origin=null CONSTRUCTOR_CALL 'public constructor <init> <Y2> () declared in <root>.J1.J2' type=<root>.J1.J2<kotlin.Double, kotlin.Int> origin=null
<class: X2>: kotlin.Double <class: X2>: kotlin.Double
<Y2>: kotlin.CharSequence <Y2>: kotlin.CharSequence
$outer: TYPE_OP type=<root>.J1<X1 of <root>.J1> origin=IMPLICIT_CAST typeOperand=<root>.J1<X1 of <root>.J1> $outer: CONSTRUCTOR_CALL 'public constructor <init> <Y1> () declared in <root>.J1' type=<root>.J1<kotlin.Int> origin=null
CONSTRUCTOR_CALL 'public constructor <init> <Y1> () declared in <root>.J1' type=<root>.J1<kotlin.Int> origin=null <class: X1>: kotlin.Int
<class: X1>: kotlin.Int <Y1>: kotlin.String
<Y1>: kotlin.String
CLASS CLASS name:K1 modality:FINAL visibility:public superTypes:[kotlin.Any] CLASS CLASS name:K1 modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K1<T1 of <root>.K1> $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K1<T1 of <root>.K1>
TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Number] TYPE_PARAMETER name:T1 index:0 variance: superTypes:[kotlin.Number]
@@ -80,7 +80,7 @@ FILE fqName:<root> fileName:/enumEntryReferenceFromEnumEntryClass.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1 value: CONST Int type=kotlin.Int value=1
CALL 'public final fun foo (): kotlin.Unit declared in <root>.MyEnum.Z' type=kotlin.Unit origin=null CALL 'public final fun foo (): kotlin.Unit declared in <root>.MyEnum.Z' type=kotlin.Unit origin=null
CALL 'private constructor <init> () [primary] declared in <root>.MyEnum.Z.anObject.<no name provided>' type=<root>.MyEnum.Z.anObject.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.MyEnum.Z.anObject.<no name provided>' type=<root>.MyEnum.Z.anObject.<no name provided> origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anObject> visibility:public modality:FINAL <> ($this:<root>.MyEnum.Z) returnType:IrErrorType FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anObject> visibility:public modality:FINAL <> ($this:<root>.MyEnum.Z) returnType:IrErrorType
correspondingProperty: PROPERTY name:anObject visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:anObject visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.MyEnum.Z $this: VALUE_PARAMETER name:<this> type:<root>.MyEnum.Z
@@ -5,14 +5,14 @@ FILE fqName:<root> fileName:/eqeqRhsConditionPossiblyAffectingLhs.kt
RETURN type=kotlin.Nothing from='public final fun test (x: kotlin.Any): kotlin.Boolean declared in <root>' RETURN type=kotlin.Nothing from='public final fun test (x: kotlin.Any): kotlin.Boolean declared in <root>'
CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'x: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null arg0: GET_VAR 'x: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null
arg1: WHEN type=kotlin.Nothing origin=IF arg1: WHEN type=IrErrorType origin=IF
BRANCH BRANCH
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double
GET_VAR 'x: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null GET_VAR 'x: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null
then: BLOCK type=kotlin.Nothing origin=EXCLEXCL then: BLOCK type=IrErrorType origin=EXCLEXCL
VAR name:<bangbang> type:kotlin.Nothing? [val] VAR name:<bangbang> type:kotlin.Nothing? [val]
CONST Null type=kotlin.Nothing? value=null CONST Null type=kotlin.Nothing? value=null
WHEN type=kotlin.Nothing origin=EXCLEXCL WHEN type=IrErrorType origin=EXCLEXCL
BRANCH BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val <bangbang>: kotlin.Nothing? [val] declared in <root>.test' type=kotlin.Nothing? origin=null arg0: GET_VAR 'val <bangbang>: kotlin.Nothing? [val] declared in <root>.test' type=kotlin.Nothing? origin=null
@@ -22,7 +22,8 @@ FILE fqName:<root> fileName:/whenByFloatingPoint.kt
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double
GET_VAR 'x: kotlin.Any declared in <root>.testSmartCastInWhenSubject' type=kotlin.Any origin=null GET_VAR 'x: kotlin.Any declared in <root>.testSmartCastInWhenSubject' type=kotlin.Any origin=null
then: RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenSubject (x: kotlin.Any): kotlin.Int declared in <root>' then: RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenSubject (x: kotlin.Any): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
CONST Int type=kotlin.Int value=1
RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenSubject (x: kotlin.Any): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenSubject (x: kotlin.Any): kotlin.Int declared in <root>'
BLOCK type=kotlin.Int origin=WHEN BLOCK type=kotlin.Int origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp1_subject type:kotlin.Any [val] VAR IR_TEMPORARY_VARIABLE name:tmp1_subject type:kotlin.Any [val]
@@ -44,7 +45,8 @@ FILE fqName:<root> fileName:/whenByFloatingPoint.kt
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double
GET_VAR 'y: kotlin.Any declared in <root>.testSmartCastInWhenCondition' type=kotlin.Any origin=null GET_VAR 'y: kotlin.Any declared in <root>.testSmartCastInWhenCondition' type=kotlin.Any origin=null
then: RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenCondition (x: kotlin.Double, y: kotlin.Any): kotlin.Int declared in <root>' then: RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenCondition (x: kotlin.Double, y: kotlin.Any): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
CONST Int type=kotlin.Int value=1
RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenCondition (x: kotlin.Double, y: kotlin.Any): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenCondition (x: kotlin.Double, y: kotlin.Any): kotlin.Int declared in <root>'
BLOCK type=kotlin.Int origin=WHEN BLOCK type=kotlin.Int origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp2_subject type:kotlin.Double [val] VAR IR_TEMPORARY_VARIABLE name:tmp2_subject type:kotlin.Double [val]
@@ -57,25 +59,26 @@ FILE fqName:<root> fileName:/whenByFloatingPoint.kt
BRANCH BRANCH
if: CONST Boolean type=kotlin.Boolean value=true if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Int type=kotlin.Int value=1 then: CONST Int type=kotlin.Int value=1
FUN name:testSmartCastInWhenConditionInBranch visibility:public modality:FINAL <> (x:kotlin.Any) returnType:kotlin.Int FUN name:testSmartCastInWhenConditionInBranch visibility:public modality:FINAL <> (x:kotlin.Any) returnType:IrErrorType
VALUE_PARAMETER name:x index:0 type:kotlin.Any VALUE_PARAMETER name:x index:0 type:kotlin.Any
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenConditionInBranch (x: kotlin.Any): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun testSmartCastInWhenConditionInBranch (x: kotlin.Any): IrErrorType declared in <root>'
BLOCK type=kotlin.Int origin=WHEN BLOCK type=IrErrorType origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp3_subject type:kotlin.Any [val] VAR IR_TEMPORARY_VARIABLE name:tmp3_subject type:kotlin.Any [val]
WHEN type=kotlin.Int origin=WHEN WHEN type=IrErrorType origin=WHEN
BRANCH BRANCH
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double
GET_VAR 'val tmp3_subject: kotlin.Any [val] declared in <root>.testSmartCastInWhenConditionInBranch' type=kotlin.Any origin=null GET_VAR 'val tmp3_subject: kotlin.Any [val] declared in <root>.testSmartCastInWhenConditionInBranch' type=kotlin.Any origin=null
then: CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null then: ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
CONST Int type=kotlin.Int value=1
BRANCH BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val tmp3_subject: kotlin.Any [val] declared in <root>.testSmartCastInWhenConditionInBranch' type=kotlin.Any origin=null arg0: GET_VAR 'val tmp3_subject: kotlin.Any [val] declared in <root>.testSmartCastInWhenConditionInBranch' type=kotlin.Any origin=null
arg1: CONST Double type=kotlin.Int value=0.0 arg1: CONST Double type=IrErrorType value=0.0
then: CONST Int type=kotlin.Int value=0 then: CONST Int type=IrErrorType value=0
BRANCH BRANCH
if: CONST Boolean type=kotlin.Boolean value=true if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Int type=kotlin.Int value=1 then: CONST Int type=IrErrorType value=1
FUN name:testSmartCastToDifferentTypes visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:kotlin.Int FUN name:testSmartCastToDifferentTypes visibility:public modality:FINAL <> (x:kotlin.Any, y:kotlin.Any) returnType:kotlin.Int
VALUE_PARAMETER name:x index:0 type:kotlin.Any VALUE_PARAMETER name:x index:0 type:kotlin.Any
VALUE_PARAMETER name:y index:1 type:kotlin.Any VALUE_PARAMETER name:y index:1 type:kotlin.Any
@@ -85,13 +88,15 @@ FILE fqName:<root> fileName:/whenByFloatingPoint.kt
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double
GET_VAR 'x: kotlin.Any declared in <root>.testSmartCastToDifferentTypes' type=kotlin.Any origin=null GET_VAR 'x: kotlin.Any declared in <root>.testSmartCastToDifferentTypes' type=kotlin.Any origin=null
then: RETURN type=kotlin.Nothing from='public final fun testSmartCastToDifferentTypes (x: kotlin.Any, y: kotlin.Any): kotlin.Int declared in <root>' then: RETURN type=kotlin.Nothing from='public final fun testSmartCastToDifferentTypes (x: kotlin.Any, y: kotlin.Any): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
CONST Int type=kotlin.Int value=1
WHEN type=kotlin.Int origin=IF WHEN type=kotlin.Int origin=IF
BRANCH BRANCH
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Float if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Float
GET_VAR 'y: kotlin.Any declared in <root>.testSmartCastToDifferentTypes' type=kotlin.Any origin=null GET_VAR 'y: kotlin.Any declared in <root>.testSmartCastToDifferentTypes' type=kotlin.Any origin=null
then: RETURN type=kotlin.Nothing from='public final fun testSmartCastToDifferentTypes (x: kotlin.Any, y: kotlin.Any): kotlin.Int declared in <root>' then: RETURN type=kotlin.Nothing from='public final fun testSmartCastToDifferentTypes (x: kotlin.Any, y: kotlin.Any): kotlin.Int declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
CONST Int type=kotlin.Int value=1
RETURN type=kotlin.Nothing from='public final fun testSmartCastToDifferentTypes (x: kotlin.Any, y: kotlin.Any): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun testSmartCastToDifferentTypes (x: kotlin.Any, y: kotlin.Any): kotlin.Int declared in <root>'
BLOCK type=kotlin.Int origin=WHEN BLOCK type=kotlin.Int origin=WHEN
VAR IR_TEMPORARY_VARIABLE name:tmp4_subject type:kotlin.Any [val] VAR IR_TEMPORARY_VARIABLE name:tmp4_subject type:kotlin.Any [val]
@@ -8,7 +8,7 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
body: BLOCK type=kotlin.Nothing origin=null body: BLOCK type=IrErrorType origin=null
VAR name:s type:T of <uninitialized parent> [val] VAR name:s type:T of <uninitialized parent> [val]
CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null
BREAK label=null loop.label=null BREAK label=null loop.label=null
@@ -21,7 +21,7 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null
WHILE label=OUTER origin=FOR_LOOP_INNER_WHILE WHILE label=OUTER origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
body: BLOCK type=kotlin.Nothing origin=null body: BLOCK type=IrErrorType origin=null
VAR name:s1 type:T of <uninitialized parent> [val] VAR name:s1 type:T of <uninitialized parent> [val]
CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null
VAR name:<range> type:kotlin.collections.List<kotlin.String> [val] VAR name:<range> type:kotlin.collections.List<kotlin.String> [val]
@@ -30,7 +30,7 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null
WHILE label=INNER origin=FOR_LOOP_INNER_WHILE WHILE label=INNER origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
body: BLOCK type=kotlin.Nothing origin=null body: BLOCK type=IrErrorType origin=null
VAR name:s2 type:T of <uninitialized parent> [val] VAR name:s2 type:T of <uninitialized parent> [val]
CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null
BREAK label=OUTER loop.label=OUTER BREAK label=OUTER loop.label=OUTER
@@ -46,7 +46,7 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null
WHILE label=null origin=FOR_LOOP_INNER_WHILE WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
body: BLOCK type=kotlin.Nothing origin=null body: BLOCK type=IrErrorType origin=null
VAR name:s type:T of <uninitialized parent> [val] VAR name:s type:T of <uninitialized parent> [val]
CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null
CONTINUE label=null loop.label=null CONTINUE label=null loop.label=null
@@ -59,7 +59,7 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null
WHILE label=OUTER origin=FOR_LOOP_INNER_WHILE WHILE label=OUTER origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
body: BLOCK type=kotlin.Nothing origin=null body: BLOCK type=IrErrorType origin=null
VAR name:s1 type:T of <uninitialized parent> [val] VAR name:s1 type:T of <uninitialized parent> [val]
CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null
VAR name:<range> type:kotlin.collections.List<kotlin.String> [val] VAR name:<range> type:kotlin.collections.List<kotlin.String> [val]
@@ -68,7 +68,7 @@ FILE fqName:<root> fileName:/forWithBreakContinue.kt
CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null CALL 'public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in kotlin.collections.List' type=kotlin.collections.Iterator<E of <uninitialized parent>> origin=null
WHILE label=INNER origin=FOR_LOOP_INNER_WHILE WHILE label=INNER origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.Iterator' type=kotlin.Boolean origin=null
body: BLOCK type=kotlin.Nothing origin=null body: BLOCK type=IrErrorType origin=null
VAR name:s2 type:T of <uninitialized parent> [val] VAR name:s2 type:T of <uninitialized parent> [val]
CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null CALL 'public abstract fun next (): T of <uninitialized parent> declared in kotlin.collections.Iterator' type=T of <uninitialized parent> origin=null
CONTINUE label=OUTER loop.label=OUTER CONTINUE label=OUTER loop.label=OUTER
@@ -63,8 +63,7 @@ FILE fqName:<root> fileName:/forWithImplicitReceivers.kt
$this: VALUE_PARAMETER name:<this> type:<root>.IReceiver $this: VALUE_PARAMETER name:<this> type:<root>.IReceiver
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun iterator (): <root>.IntCell declared in <root>.IReceiver' RETURN type=kotlin.Nothing from='public open fun iterator (): <root>.IntCell declared in <root>.IReceiver'
CALL 'public constructor <init> (value: kotlin.Int) [primary] declared in <root>.IntCell' type=<root>.IntCell origin=null CONSTRUCTOR_CALL 'public constructor <init> (value: kotlin.Int) [primary] declared in <root>.IntCell' type=<root>.IntCell origin=null
value: CONST Int type=kotlin.Int value=5
FUN name:hasNext visibility:public modality:OPEN <> ($this:<root>.IReceiver) returnType:kotlin.Boolean FUN name:hasNext visibility:public modality:OPEN <> ($this:<root>.IReceiver) returnType:kotlin.Boolean
$this: VALUE_PARAMETER name:<this> type:<root>.IReceiver $this: VALUE_PARAMETER name:<this> type:<root>.IReceiver
BLOCK_BODY BLOCK_BODY
@@ -0,0 +1,7 @@
fun testSimple() = Box<Long>(2 * 3)
inline fun <reified T> testArray(n: Int, crossinline block: () -> T): Array<T> {
return Array<T>(n) { block() }
}
class Box<T>(val value: T)
@@ -0,0 +1,59 @@
FILE fqName:<root> fileName:/genericConstructorCallWithTypeArguments.kt
FUN name:testSimple visibility:public modality:FINAL <> () returnType:<root>.Box<kotlin.Long>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testSimple (): <root>.Box<kotlin.Long> declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (value: T of <root>.Box) [primary] declared in <root>.Box' type=<root>.Box<kotlin.Long> origin=null
<class: T>: kotlin.Long
value: TYPE_OP type=kotlin.Long origin=IMPLICIT_INTEGER_COERCION typeOperand=kotlin.Long
CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=MUL
$this: CONST Int type=kotlin.Int value=2
other: CONST Int type=kotlin.Int value=3
FUN name:testArray visibility:public modality:FINAL <T> (n:kotlin.Int, block:kotlin.Function0<T of <root>.testArray>) returnType:kotlin.Array<T of <root>.testArray> [inline]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
VALUE_PARAMETER name:n index:0 type:kotlin.Int
VALUE_PARAMETER name:block index:1 type:kotlin.Function0<T of <root>.testArray> [crossinline]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testArray <T> (n: kotlin.Int, block: kotlin.Function0<T of <root>.testArray>): kotlin.Array<T of <root>.testArray> [inline] declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (size: kotlin.Int, init: kotlin.Function1<kotlin.Int, T of kotlin.Array>) declared in kotlin.Array' type=kotlin.Array<T of <root>.testArray> origin=null
<class: T>: T of <root>.testArray
size: GET_VAR 'n: kotlin.Int declared in <root>.testArray' type=kotlin.Int origin=null
init: BLOCK type=kotlin.Function1<kotlin.Int, T of <root>.testArray> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.Int) returnType:T of <root>.testArray
VALUE_PARAMETER name:it index:0 type:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: kotlin.Int): T of <root>.testArray declared in <root>.testArray'
CALL 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=T of <root>.testArray origin=INVOKE
$this: GET_VAR 'block: kotlin.Function0<T of <root>.testArray> [crossinline] declared in <root>.testArray' type=kotlin.Function0<T of <root>.testArray> origin=VARIABLE_AS_FUNCTION
FUNCTION_REFERENCE 'local final fun <anonymous> (it: kotlin.Int): T of <root>.testArray declared in <root>.testArray' type=kotlin.Function1<kotlin.Int, T of <root>.testArray> origin=LAMBDA
CLASS CLASS name:Box modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Box<T of <root>.Box>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> (value:T of <root>.Box) returnType:<root>.Box<T of <root>.Box> [primary]
VALUE_PARAMETER name:value index:0 type:T of <root>.Box
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Box modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:value visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.Box visibility:public [final]
EXPRESSION_BODY
GET_VAR 'value: T of <root>.Box declared in <root>.Box.<init>' type=T of <root>.Box origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.Box<T of <root>.Box>) returnType:T of <root>.Box
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Box<T of <root>.Box>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-value> (): T of <root>.Box declared in <root>.Box'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.Box visibility:public [final] ' type=T of <root>.Box origin=null
receiver: GET_VAR '<this>: <root>.Box<T of <root>.Box> declared in <root>.Box.<get-value>' type=<root>.Box<T of <root>.Box> origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
@@ -2,10 +2,10 @@ FILE fqName:<root> fileName:/javaSyntheticPropertyAccess.kt
FUN name:test visibility:public modality:FINAL <> (j:<root>.J) returnType:kotlin.Unit FUN name:test visibility:public modality:FINAL <> (j:<root>.J) returnType:kotlin.Unit
VALUE_PARAMETER name:j index:0 type:<root>.J VALUE_PARAMETER name:j index:0 type:<root>.J
BLOCK_BODY BLOCK_BODY
ERROR_CALL 'Unresolved reference: <Ambiguity: foo, [/J.foo, /J.foo]>#' type=IrErrorType ERROR_CALL 'No getter found for R|/J.foo|' type=kotlin.Int
ERROR_CALL 'Unresolved reference: <Ambiguity: foo, [/J.foo, /J.foo]>#' type=IrErrorType ERROR_CALL 'Unresolved reference: R|/J.foo|' type=IrErrorType
VAR name:<unary> type:IrErrorType [val] VAR name:<unary> type:kotlin.Int [val]
ERROR_CALL 'Unresolved reference: <Ambiguity: foo, [/J.foo, /J.foo]>#' type=IrErrorType ERROR_CALL 'No getter found for R|/J.foo|' type=kotlin.Int
ERROR_CALL 'Unresolved reference: <Ambiguity: foo, [/J.foo, /J.foo]>#' type=IrErrorType ERROR_CALL 'Unresolved reference: R|/J.foo|' type=IrErrorType
GET_VAR 'val <unary>: IrErrorType [val] declared in <root>.test' type=IrErrorType origin=null GET_VAR 'val <unary>: kotlin.Int [val] declared in <root>.test' type=kotlin.Int origin=null
ERROR_CALL 'Unresolved reference: <Ambiguity: foo, [/J.foo, /J.foo]>#' type=IrErrorType ERROR_CALL 'Unresolved reference: R|/J.foo|' type=IrErrorType
+1 -1
View File
@@ -8,7 +8,7 @@ FILE fqName:<root> fileName:/kt16904.kt
PROPERTY name:x visibility:public modality:FINAL [val] PROPERTY name:x visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:x type:<root>.B visibility:public [final] FIELD PROPERTY_BACKING_FIELD name:x type:<root>.B visibility:public [final]
EXPRESSION_BODY EXPRESSION_BODY
CALL 'public constructor <init> () [primary] declared in <root>.B' type=<root>.B origin=null CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.B' type=<root>.B origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.A) returnType:<root>.B FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.A) returnType:<root>.B
correspondingProperty: PROPERTY name:x visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:x visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.A $this: VALUE_PARAMETER name:<this> type:<root>.A
+10 -15
View File
@@ -38,8 +38,7 @@ FILE fqName:<root> fileName:/kt28006.kt
PROPERTY name:testConst3 visibility:public modality:FINAL [const,val] PROPERTY name:testConst3 visibility:public modality:FINAL [const,val]
FIELD PROPERTY_BACKING_FIELD name:testConst3 type:kotlin.String visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:testConst3 type:kotlin.String visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
STRING_CONCATENATION type=kotlin.String ERROR_CALL 'Cannot bind 2 arguments to plus call with 1 parameters' type=kotlin.String
CONST String type=kotlin.String value="\uD83E"
CONST String type=kotlin.String value="\uDD17" CONST String type=kotlin.String value="\uDD17"
CALL 'public final fun <get-testConst2> (): kotlin.String declared in <root>' type=kotlin.String origin=null CALL 'public final fun <get-testConst2> (): kotlin.String declared in <root>' type=kotlin.String origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-testConst3> visibility:public modality:FINAL <> () returnType:kotlin.String FUN DEFAULT_PROPERTY_ACCESSOR name:<get-testConst3> visibility:public modality:FINAL <> () returnType:kotlin.String
@@ -50,9 +49,8 @@ FILE fqName:<root> fileName:/kt28006.kt
PROPERTY name:testConst4 visibility:public modality:FINAL [const,val] PROPERTY name:testConst4 visibility:public modality:FINAL [const,val]
FIELD PROPERTY_BACKING_FIELD name:testConst4 type:kotlin.String visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:testConst4 type:kotlin.String visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
STRING_CONCATENATION type=kotlin.String CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
CALL 'public final fun <get-testConst2> (): kotlin.String declared in <root>' type=kotlin.String origin=null other: CALL 'public final fun <get-testConst2> (): kotlin.String declared in <root>' type=kotlin.String origin=null
CALL 'public final fun <get-testConst2> (): kotlin.String declared in <root>' type=kotlin.String origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-testConst4> visibility:public modality:FINAL <> () returnType:kotlin.String FUN DEFAULT_PROPERTY_ACCESSOR name:<get-testConst4> visibility:public modality:FINAL <> () returnType:kotlin.String
correspondingProperty: PROPERTY name:testConst4 visibility:public modality:FINAL [const,val] correspondingProperty: PROPERTY name:testConst4 visibility:public modality:FINAL [const,val]
BLOCK_BODY BLOCK_BODY
@@ -62,24 +60,21 @@ FILE fqName:<root> fileName:/kt28006.kt
VALUE_PARAMETER name:x index:0 type:kotlin.Int VALUE_PARAMETER name:x index:0 type:kotlin.Int
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (x: kotlin.Int): kotlin.String declared in <root>' RETURN type=kotlin.Nothing from='public final fun test1 (x: kotlin.Int): kotlin.String declared in <root>'
STRING_CONCATENATION type=kotlin.String ERROR_CALL 'Cannot bind 2 arguments to plus call with 1 parameters' type=kotlin.String
CONST String type=kotlin.String value="\uD83E"
CONST String type=kotlin.String value="\uDD17" CONST String type=kotlin.String value="\uDD17"
GET_VAR 'x: kotlin.Int declared in <root>.test1' type=kotlin.Int origin=null GET_VAR 'x: kotlin.Int declared in <root>.test1' type=kotlin.Int origin=null
FUN name:test2 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:kotlin.String FUN name:test2 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:IrErrorType
VALUE_PARAMETER name:x index:0 type:kotlin.Int VALUE_PARAMETER name:x index:0 type:kotlin.Int
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (x: kotlin.Int): kotlin.String declared in <root>' RETURN type=kotlin.Nothing from='public final fun test2 (x: kotlin.Int): IrErrorType declared in <root>'
STRING_CONCATENATION type=kotlin.String ERROR_CALL 'Unresolved reference: <Ambiguity: plus, [kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus]>#' type=IrErrorType
GET_VAR 'x: kotlin.Int declared in <root>.test2' type=kotlin.Int origin=null
CONST String type=kotlin.String value="\uD83E" CONST String type=kotlin.String value="\uD83E"
CONST String type=kotlin.String value="\uDD17" CONST String type=kotlin.String value="\uDD17"
FUN name:test3 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:kotlin.String FUN name:test3 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:IrErrorType
VALUE_PARAMETER name:x index:0 type:kotlin.Int VALUE_PARAMETER name:x index:0 type:kotlin.Int
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 (x: kotlin.Int): kotlin.String declared in <root>' RETURN type=kotlin.Nothing from='public final fun test3 (x: kotlin.Int): IrErrorType declared in <root>'
STRING_CONCATENATION type=kotlin.String ERROR_CALL 'Unresolved reference: <Ambiguity: plus, [kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus]>#' type=IrErrorType
GET_VAR 'x: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null
CONST String type=kotlin.String value="\uD83E" CONST String type=kotlin.String value="\uD83E"
CONST String type=kotlin.String value="\uDD17" CONST String type=kotlin.String value="\uDD17"
GET_VAR 'x: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null GET_VAR 'x: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null
+36 -36
View File
@@ -36,11 +36,11 @@ FILE fqName:<root> fileName:/kt30020.kt
TYPE_OP type=kotlin.collections.MutableList<kotlin.Int> origin=CAST typeOperand=kotlin.collections.MutableList<kotlin.Int> TYPE_OP type=kotlin.collections.MutableList<kotlin.Int> origin=CAST typeOperand=kotlin.collections.MutableList<kotlin.Int>
CALL 'public abstract fun f (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null CALL 'public abstract fun f (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
ERROR_CALL 'Unresolved reference: R|<local>/<complex-set>|' type=IrErrorType ERROR_CALL 'Unresolved reference: R|<local>/<complex-set>|' type=IrErrorType
VAR name:<complex-set> type:kotlin.Nothing [val] VAR name:<complex-set> type:IrErrorType [val]
BLOCK type=kotlin.Nothing origin=EXCLEXCL BLOCK type=IrErrorType origin=EXCLEXCL
VAR name:<bangbang> type:kotlin.collections.MutableList<kotlin.Any> [val] VAR name:<bangbang> type:kotlin.collections.MutableList<kotlin.Any> [val]
CALL 'public abstract fun <get-xs> (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null CALL 'public abstract fun <get-xs> (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
WHEN type=kotlin.Nothing origin=EXCLEXCL WHEN type=IrErrorType origin=EXCLEXCL
BRANCH BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val <bangbang>: kotlin.collections.MutableList<kotlin.Any> [val] declared in <root>.test' type=kotlin.collections.MutableList<kotlin.Any> origin=null arg0: GET_VAR 'val <bangbang>: kotlin.collections.MutableList<kotlin.Any> [val] declared in <root>.test' type=kotlin.collections.MutableList<kotlin.Any> origin=null
@@ -51,11 +51,11 @@ FILE fqName:<root> fileName:/kt30020.kt
if: CONST Boolean type=kotlin.Boolean value=true if: CONST Boolean type=kotlin.Boolean value=true
then: GET_VAR 'val <bangbang>: kotlin.collections.MutableList<kotlin.Any> [val] declared in <root>.test' type=kotlin.collections.MutableList<kotlin.Any> origin=null then: GET_VAR 'val <bangbang>: kotlin.collections.MutableList<kotlin.Any> [val] declared in <root>.test' type=kotlin.collections.MutableList<kotlin.Any> origin=null
ERROR_CALL 'Unresolved reference: R|<local>/<complex-set>|' type=IrErrorType ERROR_CALL 'Unresolved reference: R|<local>/<complex-set>|' type=IrErrorType
VAR name:<complex-set> type:kotlin.Nothing [val] VAR name:<complex-set> type:IrErrorType [val]
BLOCK type=kotlin.Nothing origin=EXCLEXCL BLOCK type=IrErrorType origin=EXCLEXCL
VAR name:<bangbang> type:kotlin.collections.MutableList<kotlin.Any> [val] VAR name:<bangbang> type:kotlin.collections.MutableList<kotlin.Any> [val]
CALL 'public abstract fun f (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null CALL 'public abstract fun f (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.X' type=kotlin.collections.MutableList<kotlin.Any> origin=null
WHEN type=kotlin.Nothing origin=EXCLEXCL WHEN type=IrErrorType origin=EXCLEXCL
BRANCH BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
arg0: GET_VAR 'val <bangbang>: kotlin.collections.MutableList<kotlin.Any> [val] declared in <root>.test' type=kotlin.collections.MutableList<kotlin.Any> origin=null arg0: GET_VAR 'val <bangbang>: kotlin.collections.MutableList<kotlin.Any> [val] declared in <root>.test' type=kotlin.collections.MutableList<kotlin.Any> origin=null
@@ -102,87 +102,87 @@ FILE fqName:<root> fileName:/kt30020.kt
overridden: overridden:
public open fun toString (): kotlin.String declared in kotlin.Any public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:add visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, element:kotlin.Int) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:add visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, element:E of <uninitialized parent>) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun add (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.MutableList public abstract fun add (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
VALUE_PARAMETER name:element index:0 type:kotlin.Int VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
FUN FAKE_OVERRIDE name:addAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:addAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun addAll (index: kotlin.Int, elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.MutableList public abstract fun addAll (index: kotlin.Int, elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
VALUE_PARAMETER name:index index:0 type:kotlin.Int VALUE_PARAMETER name:index index:0 type:kotlin.Int
VALUE_PARAMETER name:elements index:1 type:kotlin.collections.Collection<kotlin.Int> VALUE_PARAMETER name:elements index:1 type:kotlin.collections.Collection<E of <uninitialized parent>>
FUN FAKE_OVERRIDE name:clear visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList) returnType:kotlin.Unit FUN FAKE_OVERRIDE name:clear visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList) returnType:kotlin.Unit
overridden: overridden:
public abstract fun clear (): kotlin.Unit declared in kotlin.collections.MutableList public abstract fun clear (): kotlin.Unit declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
FUN FAKE_OVERRIDE name:listIterator visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList) returnType:kotlin.collections.MutableListIterator<kotlin.Int> FUN FAKE_OVERRIDE name:listIterator visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList) returnType:kotlin.collections.MutableListIterator<E of <uninitialized parent>>
overridden: overridden:
public abstract fun listIterator (): kotlin.collections.MutableListIterator<E of <uninitialized parent>> declared in kotlin.collections.MutableList public abstract fun listIterator (): kotlin.collections.MutableListIterator<E of <uninitialized parent>> declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
FUN FAKE_OVERRIDE name:remove visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, element:kotlin.Int) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:remove visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, element:E of <uninitialized parent>) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun remove (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.MutableList public abstract fun remove (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
VALUE_PARAMETER name:element index:0 type:kotlin.Int VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
FUN FAKE_OVERRIDE name:removeAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:removeAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun removeAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.MutableList public abstract fun removeAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.Int> VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<E of <uninitialized parent>>
FUN FAKE_OVERRIDE name:removeAt visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int) returnType:kotlin.Int FUN FAKE_OVERRIDE name:removeAt visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int) returnType:E of <uninitialized parent>
overridden: overridden:
public abstract fun removeAt (index: kotlin.Int): E of <uninitialized parent> declared in kotlin.collections.MutableList public abstract fun removeAt (index: kotlin.Int): E of <uninitialized parent> declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
VALUE_PARAMETER name:index index:0 type:kotlin.Int VALUE_PARAMETER name:index index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:retainAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:retainAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun retainAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.MutableList public abstract fun retainAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.Int> VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<E of <uninitialized parent>>
FUN FAKE_OVERRIDE name:set visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int, element:kotlin.Int) returnType:kotlin.Int FUN FAKE_OVERRIDE name:set visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, index:kotlin.Int, element:E of <uninitialized parent>) returnType:E of <uninitialized parent>
overridden: overridden:
public abstract fun set (index: kotlin.Int, element: E of <uninitialized parent>): E of <uninitialized parent> declared in kotlin.collections.MutableList public abstract fun set (index: kotlin.Int, element: E of <uninitialized parent>): E of <uninitialized parent> declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
VALUE_PARAMETER name:index index:0 type:kotlin.Int VALUE_PARAMETER name:index index:0 type:kotlin.Int
VALUE_PARAMETER name:element index:1 type:kotlin.Int VALUE_PARAMETER name:element index:1 type:E of <uninitialized parent>
FUN FAKE_OVERRIDE name:subList visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, fromIndex:kotlin.Int, toIndex:kotlin.Int) returnType:kotlin.collections.MutableList<kotlin.Int> FUN FAKE_OVERRIDE name:subList visibility:public modality:ABSTRACT <> ($this:kotlin.collections.MutableList, fromIndex:kotlin.Int, toIndex:kotlin.Int) returnType:kotlin.collections.MutableList<E of <uninitialized parent>>
overridden: overridden:
public abstract fun subList (fromIndex: kotlin.Int, toIndex: kotlin.Int): kotlin.collections.MutableList<E of <uninitialized parent>> declared in kotlin.collections.MutableList public abstract fun subList (fromIndex: kotlin.Int, toIndex: kotlin.Int): kotlin.collections.MutableList<E of <uninitialized parent>> declared in kotlin.collections.MutableList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList $this: VALUE_PARAMETER name:<this> type:kotlin.collections.MutableList
VALUE_PARAMETER name:fromIndex index:0 type:kotlin.Int VALUE_PARAMETER name:fromIndex index:0 type:kotlin.Int
VALUE_PARAMETER name:toIndex index:1 type:kotlin.Int VALUE_PARAMETER name:toIndex index:1 type:kotlin.Int
FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:kotlin.Int) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:E of <uninitialized parent>) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in <no parent>.List public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List $this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
VALUE_PARAMETER name:element index:0 type:kotlin.Int VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Collection, element:kotlin.Int) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:contains visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Collection, element:E of <uninitialized parent>) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.Collection public abstract fun contains (element: E of <uninitialized parent>): kotlin.Boolean declared in kotlin.collections.Collection
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection $this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection
VALUE_PARAMETER name:element index:0 type:kotlin.Int VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun containsAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in <no parent>.List public abstract fun containsAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List $this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.Int> VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<E of <uninitialized parent>>
FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Collection, elements:kotlin.collections.Collection<kotlin.Int>) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:containsAll visibility:public modality:ABSTRACT <> ($this:kotlin.collections.Collection, elements:kotlin.collections.Collection<E of <uninitialized parent>>) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun containsAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.Collection public abstract fun containsAll (elements: kotlin.collections.Collection<E of <uninitialized parent>>): kotlin.Boolean declared in kotlin.collections.Collection
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection $this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.Int> VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<E of <uninitialized parent>>
FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, index:kotlin.Int) returnType:kotlin.Int FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, index:kotlin.Int) returnType:E of <uninitialized parent>
overridden: overridden:
public abstract fun get (index: kotlin.Int): E of <uninitialized parent> declared in <no parent>.List public abstract fun get (index: kotlin.Int): E of <uninitialized parent> declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List $this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
VALUE_PARAMETER name:index index:0 type:kotlin.Int VALUE_PARAMETER name:index index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:indexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:kotlin.Int) returnType:kotlin.Int FUN FAKE_OVERRIDE name:indexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:E of <uninitialized parent>) returnType:kotlin.Int
overridden: overridden:
public abstract fun indexOf (element: E of <uninitialized parent>): kotlin.Int declared in <no parent>.List public abstract fun indexOf (element: E of <uninitialized parent>): kotlin.Int declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List $this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
VALUE_PARAMETER name:element index:0 type:kotlin.Int VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List) returnType:kotlin.Boolean
overridden: overridden:
public abstract fun isEmpty (): kotlin.Boolean declared in <no parent>.List public abstract fun isEmpty (): kotlin.Boolean declared in <no parent>.List
@@ -191,19 +191,19 @@ FILE fqName:<root> fileName:/kt30020.kt
overridden: overridden:
public abstract fun isEmpty (): kotlin.Boolean declared in kotlin.collections.Collection public abstract fun isEmpty (): kotlin.Boolean declared in kotlin.collections.Collection
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection $this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection
FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List) returnType:kotlin.collections.Iterator<kotlin.Int> FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List) returnType:kotlin.collections.Iterator<E of <uninitialized parent>>
overridden: overridden:
public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in <no parent>.List public abstract fun iterator (): kotlin.collections.Iterator<E of <uninitialized parent>> declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List $this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.MutableCollection) returnType:kotlin.collections.MutableIterator<kotlin.Int> FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.MutableCollection) returnType:kotlin.collections.MutableIterator<E of <uninitialized parent>>
overridden: overridden:
public abstract fun iterator (): kotlin.collections.MutableIterator<E of <uninitialized parent>> declared in <no parent>.MutableCollection public abstract fun iterator (): kotlin.collections.MutableIterator<E of <uninitialized parent>> declared in <no parent>.MutableCollection
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.MutableCollection $this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.MutableCollection
FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:kotlin.Int) returnType:kotlin.Int FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:ABSTRACT <> ($this:<uninitialized parent>.List, element:E of <uninitialized parent>) returnType:kotlin.Int
overridden: overridden:
public abstract fun lastIndexOf (element: E of <uninitialized parent>): kotlin.Int declared in <no parent>.List public abstract fun lastIndexOf (element: E of <uninitialized parent>): kotlin.Int declared in <no parent>.List
$this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List $this: VALUE_PARAMETER name:<this> type:<uninitialized parent>.List
VALUE_PARAMETER name:element index:0 type:kotlin.Int VALUE_PARAMETER name:element index:0 type:E of <uninitialized parent>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden: overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
+24 -20
View File
@@ -9,14 +9,15 @@ FILE fqName:<root> fileName:/literals.kt
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun <get-test1> (): kotlin.Int declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null
PROPERTY name:test2 visibility:public modality:FINAL [val] PROPERTY name:test2 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Int visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test2 type:IrErrorType visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int CONST Int type=kotlin.Int value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun <get-test2> (): IrErrorType declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:IrErrorType visibility:public [final,static] ' type=IrErrorType origin=null
PROPERTY name:test3 visibility:public modality:FINAL [val] PROPERTY name:test3 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.Boolean visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.Boolean visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
@@ -63,14 +64,15 @@ FILE fqName:<root> fileName:/literals.kt
RETURN type=kotlin.Nothing from='public final fun <get-test7> (): kotlin.Long declared in <root>' RETURN type=kotlin.Nothing from='public final fun <get-test7> (): kotlin.Long declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test7 type:kotlin.Long visibility:public [final,static] ' type=kotlin.Long origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test7 type:kotlin.Long visibility:public [final,static] ' type=kotlin.Long origin=null
PROPERTY name:test8 visibility:public modality:FINAL [val] PROPERTY name:test8 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test8 type:kotlin.Long visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test8 type:IrErrorType visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Long declared in kotlin.Long' type=kotlin.Long origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test8> visibility:public modality:FINAL <> () returnType:kotlin.Long CONST Long type=kotlin.Long value=1
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test8> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test8 visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:test8 visibility:public modality:FINAL [val]
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test8> (): kotlin.Long declared in <root>' RETURN type=kotlin.Nothing from='public final fun <get-test8> (): IrErrorType declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test8 type:kotlin.Long visibility:public [final,static] ' type=kotlin.Long origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test8 type:IrErrorType visibility:public [final,static] ' type=IrErrorType origin=null
PROPERTY name:test9 visibility:public modality:FINAL [val] PROPERTY name:test9 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Double visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Double visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
@@ -81,14 +83,15 @@ FILE fqName:<root> fileName:/literals.kt
RETURN type=kotlin.Nothing from='public final fun <get-test9> (): kotlin.Double declared in <root>' RETURN type=kotlin.Nothing from='public final fun <get-test9> (): kotlin.Double declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Double visibility:public [final,static] ' type=kotlin.Double origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Double visibility:public [final,static] ' type=kotlin.Double origin=null
PROPERTY name:test10 visibility:public modality:FINAL [val] PROPERTY name:test10 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Double visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test10 type:IrErrorType visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Double declared in kotlin.Double' type=kotlin.Double origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test10> visibility:public modality:FINAL <> () returnType:kotlin.Double CONST Double type=kotlin.Double value=1.0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test10> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test10 visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:test10 visibility:public modality:FINAL [val]
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test10> (): kotlin.Double declared in <root>' RETURN type=kotlin.Nothing from='public final fun <get-test10> (): IrErrorType declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Double visibility:public [final,static] ' type=kotlin.Double origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:IrErrorType visibility:public [final,static] ' type=IrErrorType origin=null
PROPERTY name:test11 visibility:public modality:FINAL [val] PROPERTY name:test11 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Float visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Float visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
@@ -99,14 +102,15 @@ FILE fqName:<root> fileName:/literals.kt
RETURN type=kotlin.Nothing from='public final fun <get-test11> (): kotlin.Float declared in <root>' RETURN type=kotlin.Nothing from='public final fun <get-test11> (): kotlin.Float declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Float visibility:public [final,static] ' type=kotlin.Float origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Float visibility:public [final,static] ' type=kotlin.Float origin=null
PROPERTY name:test12 visibility:public modality:FINAL [val] PROPERTY name:test12 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Float visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test12 type:IrErrorType visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CALL 'public final fun unaryMinus (): kotlin.Float declared in kotlin.Float' type=kotlin.Float origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test12> visibility:public modality:FINAL <> () returnType:kotlin.Float CONST Float type=kotlin.Float value=1.0
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test12> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:test12 visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:test12 visibility:public modality:FINAL [val]
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test12> (): kotlin.Float declared in <root>' RETURN type=kotlin.Nothing from='public final fun <get-test12> (): IrErrorType declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Float visibility:public [final,static] ' type=kotlin.Float origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:IrErrorType visibility:public [final,static] ' type=IrErrorType origin=null
PROPERTY name:test13 visibility:public modality:FINAL [val] PROPERTY name:test13 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test13 type:kotlin.Char visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test13 type:kotlin.Char visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
@@ -23,8 +23,8 @@ FILE fqName:<root> fileName:/memberTypeArguments.kt
VALUE_PARAMETER name:newValue index:0 type:T of <root>.GenericClass VALUE_PARAMETER name:newValue index:0 type:T of <root>.GenericClass
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun withNewValue (newValue: T of <root>.GenericClass): <root>.GenericClass<T of <root>.GenericClass> declared in <root>.GenericClass' RETURN type=kotlin.Nothing from='public final fun withNewValue (newValue: T of <root>.GenericClass): <root>.GenericClass<T of <root>.GenericClass> declared in <root>.GenericClass'
CALL 'public constructor <init> (value: T of <root>.GenericClass) [primary] declared in <root>.GenericClass' type=<root>.GenericClass<T of <root>.GenericClass> origin=null CONSTRUCTOR_CALL 'public constructor <init> (value: T of <root>.GenericClass) [primary] declared in <root>.GenericClass' type=<root>.GenericClass<T of <root>.GenericClass> origin=null
value: GET_VAR 'newValue: T of <root>.GenericClass declared in <root>.GenericClass.withNewValue' type=T of <root>.GenericClass origin=null <class: T>: <none>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden: overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
@@ -91,7 +91,7 @@ FILE fqName:<root> fileName:/multipleThisReferences.kt
RETURN type=kotlin.Nothing from='public final fun <get-xx> (): kotlin.String declared in <root>.Host.test.<no name provided>' RETURN type=kotlin.Nothing from='public final fun <get-xx> (): kotlin.String declared in <root>.Host.test.<no name provided>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:xx type:kotlin.String visibility:public [final] ' type=kotlin.String origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:xx type:kotlin.String visibility:public [final] ' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.Host.test.<no name provided> declared in <root>.Host.test.<no name provided>.<get-xx>' type=<root>.Host.test.<no name provided> origin=null receiver: GET_VAR '<this>: <root>.Host.test.<no name provided> declared in <root>.Host.test.<no name provided>.<get-xx>' type=<root>.Host.test.<no name provided> origin=null
CALL 'private constructor <init> () [primary] declared in <root>.Host.test.<no name provided>' type=<root>.Host.test.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.Host.test.<no name provided>' type=<root>.Host.test.<no name provided> origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean
overridden: overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
@@ -78,8 +78,7 @@ FILE fqName:<root> fileName:/objectAsCallable.kt
PROPERTY name:test1 visibility:public modality:FINAL [val] PROPERTY name:test1 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test1 type:<root>.A visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:test1 type:<root>.A visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
ERROR_CALL 'Cannot bind 1 arguments to <init> call with 0 parameters' type=<root>.A CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null
CONST Int type=kotlin.Int value=42
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:<root>.A FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:<root>.A
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
BLOCK_BODY BLOCK_BODY
@@ -122,7 +122,7 @@ FILE fqName:<root> fileName:/objectReference.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:public ' type=kotlin.Int origin=null
value: CONST Int type=kotlin.Int value=1 value: CONST Int type=kotlin.Int value=1
CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null CALL 'public final fun foo (): kotlin.Unit declared in <root>.Z' type=kotlin.Unit origin=null
CALL 'private constructor <init> () [primary] declared in <root>.Z.anObject.<no name provided>' type=<root>.Z.anObject.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.Z.anObject.<no name provided>' type=<root>.Z.anObject.<no name provided> origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anObject> visibility:public modality:FINAL <> ($this:<root>.Z) returnType:IrErrorType FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anObject> visibility:public modality:FINAL <> ($this:<root>.Z) returnType:IrErrorType
correspondingProperty: PROPERTY name:anObject visibility:public modality:FINAL [val] correspondingProperty: PROPERTY name:anObject visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Z $this: VALUE_PARAMETER name:<this> type:<root>.Z
@@ -19,9 +19,8 @@ FILE fqName:<root> fileName:/objectReferenceInFieldInitializer.kt
PROPERTY name:b visibility:private modality:FINAL [val] PROPERTY name:b visibility:private modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.String visibility:private [final] FIELD PROPERTY_BACKING_FIELD name:b type:kotlin.String visibility:private [final]
EXPRESSION_BODY EXPRESSION_BODY
STRING_CONCATENATION type=kotlin.String CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
CONST String type=kotlin.String value="1234" other: CALL 'private final fun <get-a> (): kotlin.String declared in <root>.A' type=kotlin.String origin=null
CALL 'private final fun <get-a> (): kotlin.String declared in <root>.A' type=kotlin.String origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-b> visibility:private modality:FINAL <> ($this:<root>.A) returnType:kotlin.String FUN DEFAULT_PROPERTY_ACCESSOR name:<get-b> visibility:private modality:FINAL <> ($this:<root>.A) returnType:kotlin.String
correspondingProperty: PROPERTY name:b visibility:private modality:FINAL [val] correspondingProperty: PROPERTY name:b visibility:private modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.A $this: VALUE_PARAMETER name:<this> type:<root>.A
@@ -62,7 +62,8 @@ FILE fqName:<root> fileName:/primitivesImplicitConversions.kt
VAR name:test3 type:kotlin.Long? [val] VAR name:test3 type:kotlin.Long? [val]
CONST Int type=kotlin.Long? value=42 CONST Int type=kotlin.Long? value=42
VAR name:test4 type:kotlin.Long? [val] VAR name:test4 type:kotlin.Long? [val]
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
CONST Int type=kotlin.Int value=1
VAR name:test5 type:kotlin.Long? [val] VAR name:test5 type:kotlin.Long? [val]
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null
VAR name:test6 type:kotlin.Short? [val] VAR name:test6 type:kotlin.Short? [val]
@@ -1,7 +1,7 @@
FILE fqName:<root> fileName:/signedToUnsignedConversions_test.kt FILE fqName:<root> fileName:/signedToUnsignedConversions_test.kt
PROPERTY name:IMPLICIT_INT visibility:public modality:FINAL [const,val] PROPERTY name:IMPLICIT_INT visibility:public modality:FINAL [const,val]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in kotlin.internal.ImplicitIntegerCoercion' type=kotlin.internal.ImplicitIntegerCoercion origin=null ImplicitIntegerCoercion
FIELD PROPERTY_BACKING_FIELD name:IMPLICIT_INT type:kotlin.Int visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:IMPLICIT_INT type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CONST Int type=kotlin.Int value=255 CONST Int type=kotlin.Int value=255
@@ -12,7 +12,7 @@ FILE fqName:<root> fileName:/signedToUnsignedConversions_test.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:IMPLICIT_INT type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:IMPLICIT_INT type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null
PROPERTY name:EXPLICIT_INT visibility:public modality:FINAL [const,val] PROPERTY name:EXPLICIT_INT visibility:public modality:FINAL [const,val]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in kotlin.internal.ImplicitIntegerCoercion' type=kotlin.internal.ImplicitIntegerCoercion origin=null ImplicitIntegerCoercion
FIELD PROPERTY_BACKING_FIELD name:EXPLICIT_INT type:kotlin.Int visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:EXPLICIT_INT type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CONST Int type=kotlin.Int value=255 CONST Int type=kotlin.Int value=255
@@ -23,7 +23,7 @@ FILE fqName:<root> fileName:/signedToUnsignedConversions_test.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:EXPLICIT_INT type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:EXPLICIT_INT type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null
PROPERTY name:LONG_CONST visibility:public modality:FINAL [const,val] PROPERTY name:LONG_CONST visibility:public modality:FINAL [const,val]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in kotlin.internal.ImplicitIntegerCoercion' type=kotlin.internal.ImplicitIntegerCoercion origin=null ImplicitIntegerCoercion
FIELD PROPERTY_BACKING_FIELD name:LONG_CONST type:kotlin.Long visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:LONG_CONST type:kotlin.Long visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CONST Long type=kotlin.Long value=255 CONST Long type=kotlin.Long value=255
@@ -34,7 +34,7 @@ FILE fqName:<root> fileName:/signedToUnsignedConversions_test.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:LONG_CONST type:kotlin.Long visibility:public [final,static] ' type=kotlin.Long origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:LONG_CONST type:kotlin.Long visibility:public [final,static] ' type=kotlin.Long origin=null
PROPERTY name:NON_CONST visibility:public modality:FINAL [val] PROPERTY name:NON_CONST visibility:public modality:FINAL [val]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in kotlin.internal.ImplicitIntegerCoercion' type=kotlin.internal.ImplicitIntegerCoercion origin=null ImplicitIntegerCoercion
FIELD PROPERTY_BACKING_FIELD name:NON_CONST type:kotlin.Int visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:NON_CONST type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CONST Int type=kotlin.Int value=255 CONST Int type=kotlin.Int value=255
@@ -45,7 +45,7 @@ FILE fqName:<root> fileName:/signedToUnsignedConversions_test.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:NON_CONST type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:NON_CONST type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null
PROPERTY name:BIGGER_THAN_UBYTE visibility:public modality:FINAL [const,val] PROPERTY name:BIGGER_THAN_UBYTE visibility:public modality:FINAL [const,val]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in kotlin.internal.ImplicitIntegerCoercion' type=kotlin.internal.ImplicitIntegerCoercion origin=null ImplicitIntegerCoercion
FIELD PROPERTY_BACKING_FIELD name:BIGGER_THAN_UBYTE type:kotlin.Int visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:BIGGER_THAN_UBYTE type:kotlin.Int visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CONST Int type=kotlin.Int value=256 CONST Int type=kotlin.Int value=256
@@ -56,7 +56,7 @@ FILE fqName:<root> fileName:/signedToUnsignedConversions_test.kt
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:BIGGER_THAN_UBYTE type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:BIGGER_THAN_UBYTE type:kotlin.Int visibility:public [final,static] ' type=kotlin.Int origin=null
PROPERTY name:UINT_CONST visibility:public modality:FINAL [const,val] PROPERTY name:UINT_CONST visibility:public modality:FINAL [const,val]
annotations: annotations:
CALL 'public constructor <init> () [primary] declared in kotlin.internal.ImplicitIntegerCoercion' type=kotlin.internal.ImplicitIntegerCoercion origin=null ImplicitIntegerCoercion
FIELD PROPERTY_BACKING_FIELD name:UINT_CONST type:kotlin.Long visibility:public [final,static] FIELD PROPERTY_BACKING_FIELD name:UINT_CONST type:kotlin.Long visibility:public [final,static]
EXPRESSION_BODY EXPRESSION_BODY
CONST Long type=kotlin.Long value=42 CONST Long type=kotlin.Long value=42
@@ -1,28 +1,34 @@
FILE fqName:<root> fileName:/simpleUnaryOperators.kt FILE fqName:<root> fileName:/simpleUnaryOperators.kt
FUN name:test1 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:kotlin.Int FUN name:test1 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:IrErrorType
VALUE_PARAMETER name:x index:0 type:kotlin.Int VALUE_PARAMETER name:x index:0 type:kotlin.Int
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (x: kotlin.Int): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun test1 (x: kotlin.Int): IrErrorType declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Int GET_VAR 'x: kotlin.Int declared in <root>.test1' type=kotlin.Int origin=null
FUN name:test2 visibility:public modality:FINAL <> () returnType:IrErrorType
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun test2 (): IrErrorType declared in <root>'
CALL 'public final fun unaryMinus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryMinus>#' type=IrErrorType
FUN name:test3 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:kotlin.Int CONST Int type=kotlin.Int value=42
FUN name:test3 visibility:public modality:FINAL <> (x:kotlin.Int) returnType:IrErrorType
VALUE_PARAMETER name:x index:0 type:kotlin.Int VALUE_PARAMETER name:x index:0 type:kotlin.Int
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 (x: kotlin.Int): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun test3 (x: kotlin.Int): IrErrorType declared in <root>'
CALL 'public final fun unaryPlus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryPlus>#' type=IrErrorType
FUN name:test4 visibility:public modality:FINAL <> () returnType:kotlin.Int GET_VAR 'x: kotlin.Int declared in <root>.test3' type=kotlin.Int origin=null
FUN name:test4 visibility:public modality:FINAL <> () returnType:IrErrorType
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4 (): kotlin.Int declared in <root>' RETURN type=kotlin.Nothing from='public final fun test4 (): IrErrorType declared in <root>'
CALL 'public final fun unaryPlus (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: unaryPlus>#' type=IrErrorType
FUN name:test5 visibility:public modality:FINAL <> (x:kotlin.Boolean) returnType:kotlin.Boolean CONST Int type=kotlin.Int value=42
FUN name:test5 visibility:public modality:FINAL <> (x:kotlin.Boolean) returnType:IrErrorType
VALUE_PARAMETER name:x index:0 type:kotlin.Boolean VALUE_PARAMETER name:x index:0 type:kotlin.Boolean
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test5 (x: kotlin.Boolean): kotlin.Boolean declared in <root>' RETURN type=kotlin.Nothing from='public final fun test5 (x: kotlin.Boolean): IrErrorType declared in <root>'
CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: not>#' type=IrErrorType
FUN name:test6 visibility:public modality:FINAL <> () returnType:kotlin.Boolean GET_VAR 'x: kotlin.Boolean declared in <root>.test5' type=kotlin.Boolean origin=null
FUN name:test6 visibility:public modality:FINAL <> () returnType:IrErrorType
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test6 (): kotlin.Boolean declared in <root>' RETURN type=kotlin.Nothing from='public final fun test6 (): IrErrorType declared in <root>'
CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null ERROR_CALL 'Unresolved reference: <Unresolved name: not>#' type=IrErrorType
CONST Boolean type=kotlin.Boolean value=true
@@ -36,5 +36,4 @@ FILE fqName:<root> fileName:/specializedTypeAliasConstructorCall.kt
RETURN type=kotlin.Nothing from='public final fun test (): <root>.Cell<kotlin.Int> declared in <root>' RETURN type=kotlin.Nothing from='public final fun test (): <root>.Cell<kotlin.Int> declared in <root>'
CONSTRUCTOR_CALL 'public constructor <init> (value: T of <root>.Cell) [primary] declared in <root>.Cell' type=<root>.Cell<kotlin.Int> origin=null CONSTRUCTOR_CALL 'public constructor <init> (value: T of <root>.Cell) [primary] declared in <root>.Cell' type=<root>.Cell<kotlin.Int> origin=null
<class: T>: kotlin.Int <class: T>: kotlin.Int
value: TYPE_OP type=T of <root>.Cell origin=IMPLICIT_CAST typeOperand=T of <root>.Cell value: CONST Int type=kotlin.Int value=42
CONST Int type=kotlin.Int value=42
@@ -85,4 +85,4 @@ FILE fqName:<root> fileName:/thisOfGenericOuterClass.kt
RETURN type=kotlin.Nothing from='public final fun <get-xx> (): kotlin.String declared in <root>.test.<no name provided>' RETURN type=kotlin.Nothing from='public final fun <get-xx> (): kotlin.String declared in <root>.test.<no name provided>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:xx type:kotlin.String visibility:public [final] ' type=kotlin.String origin=null GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:xx type:kotlin.String visibility:public [final] ' type=kotlin.String origin=null
receiver: GET_VAR '<this>: <root>.test.<no name provided> declared in <root>.test.<no name provided>.<get-xx>' type=<root>.test.<no name provided> origin=null receiver: GET_VAR '<this>: <root>.test.<no name provided> declared in <root>.test.<no name provided>.<get-xx>' type=<root>.test.<no name provided> origin=null
CALL 'private constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=null
@@ -10,7 +10,7 @@ FILE fqName:<root> fileName:/thisReferenceBeforeClassDeclared.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (a: <root>.WithCompanion.Companion) [primary] declared in <root>.WithCompanion' DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (a: <root>.WithCompanion.Companion) [primary] declared in <root>.WithCompanion'
a: ERROR_CALL 'Unresolved reference: this#' type=<root>.WithCompanion a: ERROR_CALL 'Unresolved reference: this#' type=<root>.WithCompanion
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion]'
CALL 'private constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=null
VAR name:test2 type:IrErrorType [val] VAR name:test2 type:IrErrorType [val]
BLOCK type=<root>.test.<no name provided> origin=OBJECT_LITERAL BLOCK type=<root>.test.<no name provided> origin=OBJECT_LITERAL
CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion] CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion]
@@ -20,7 +20,7 @@ FILE fqName:<root> fileName:/thisReferenceBeforeClassDeclared.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (a: <root>.WithCompanion.Companion) [primary] declared in <root>.WithCompanion' DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> (a: <root>.WithCompanion.Companion) [primary] declared in <root>.WithCompanion'
a: ERROR_CALL 'Unresolved reference: <Unresolved name: foo>#' type=IrErrorType a: ERROR_CALL 'Unresolved reference: <Unresolved name: foo>#' type=IrErrorType
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion]' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.WithCompanion]'
CALL 'private constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=null CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=null
CLASS CLASS name:WithCompanion modality:OPEN visibility:public superTypes:[kotlin.Any] CLASS CLASS name:WithCompanion modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.WithCompanion $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.WithCompanion
CONSTRUCTOR visibility:public <> (a:<root>.WithCompanion.Companion) returnType:<root>.WithCompanion [primary] CONSTRUCTOR visibility:public <> (a:<root>.WithCompanion.Companion) returnType:<root>.WithCompanion [primary]
@@ -19,9 +19,8 @@ FILE fqName:<root> fileName:/coercionInLoop.kt
GET_VAR 'var i: kotlin.Int [var] declared in <root>.box' type=kotlin.Int origin=null GET_VAR 'var i: kotlin.Int [var] declared in <root>.box' type=kotlin.Int origin=null
arg1: ERROR_CALL 'Unresolved reference: <Unresolved name: next>#' type=IrErrorType arg1: ERROR_CALL 'Unresolved reference: <Unresolved name: next>#' type=IrErrorType
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>' then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
STRING_CONCATENATION type=kotlin.String CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=null
CONST String type=kotlin.String value="Fail " other: GET_VAR 'var i: kotlin.Int [var] declared in <root>.box' type=kotlin.Int origin=null
GET_VAR 'var i: kotlin.Int [var] declared in <root>.box' type=kotlin.Int origin=null
VAR name:<unary> type:kotlin.Int [val] VAR name:<unary> type:kotlin.Int [val]
GET_VAR 'var i: kotlin.Int [var] declared in <root>.box' type=kotlin.Int origin=null GET_VAR 'var i: kotlin.Int [var] declared in <root>.box' type=kotlin.Int origin=null
ERROR_CALL 'Unresolved reference: R|<local>/i|' type=IrErrorType ERROR_CALL 'Unresolved reference: R|<local>/i|' type=IrErrorType
@@ -36,10 +36,8 @@ FILE fqName:<root> fileName:/typeAliasCtorForGenericClass.kt
VAR name:b type:<root>.A<kotlin.Int> [val] VAR name:b type:<root>.A<kotlin.Int> [val]
CONSTRUCTOR_CALL 'public constructor <init> (q: Q of <root>.A) [primary] declared in <root>.A' type=<root>.A<kotlin.Int> origin=null CONSTRUCTOR_CALL 'public constructor <init> (q: Q of <root>.A) [primary] declared in <root>.A' type=<root>.A<kotlin.Int> origin=null
<class: Q>: kotlin.Int <class: Q>: kotlin.Int
q: TYPE_OP type=Q of <root>.A origin=IMPLICIT_CAST typeOperand=Q of <root>.A q: CONST Int type=kotlin.Int value=2
CONST Int type=kotlin.Int value=2
VAR name:b2 type:<root>.A<<root>.A<kotlin.Int>> [val] VAR name:b2 type:<root>.A<<root>.A<kotlin.Int>> [val]
CONSTRUCTOR_CALL 'public constructor <init> (q: Q of <root>.A) [primary] declared in <root>.A' type=<root>.A<<root>.A<kotlin.Int>> origin=null CONSTRUCTOR_CALL 'public constructor <init> (q: Q of <root>.A) [primary] declared in <root>.A' type=<root>.A<<root>.A<kotlin.Int>> origin=null
<class: Q>: <root>.A<kotlin.Int> <class: Q>: <root>.A<kotlin.Int>
q: TYPE_OP type=Q of <root>.A origin=IMPLICIT_CAST typeOperand=Q of <root>.A q: GET_VAR 'val b: <root>.A<kotlin.Int> [val] declared in <root>.bar' type=<root>.A<kotlin.Int> origin=null
GET_VAR 'val b: <root>.A<kotlin.Int> [val] declared in <root>.bar' type=<root>.A<kotlin.Int> origin=null
+1 -2
View File
@@ -21,8 +21,7 @@ FILE fqName:<root> fileName:/builtinMap.kt
$receiver: CONSTRUCTOR_CALL 'public constructor <init> (p0: kotlin.collections.Map<out K of java.util.LinkedHashMap?, V of java.util.LinkedHashMap?>?) declared in java.util.LinkedHashMap' type=java.util.LinkedHashMap<K1 of <root>.plus?, V1 of <root>.plus?> origin=null $receiver: CONSTRUCTOR_CALL 'public constructor <init> (p0: kotlin.collections.Map<out K of java.util.LinkedHashMap?, V of java.util.LinkedHashMap?>?) declared in java.util.LinkedHashMap' type=java.util.LinkedHashMap<K1 of <root>.plus?, V1 of <root>.plus?> origin=null
<class: K>: K1 of <root>.plus? <class: K>: K1 of <root>.plus?
<class: V>: V1 of <root>.plus? <class: V>: V1 of <root>.plus?
p0: TYPE_OP type=kotlin.collections.Map<out K of java.util.LinkedHashMap?, V of java.util.LinkedHashMap?> origin=IMPLICIT_CAST typeOperand=kotlin.collections.Map<out K of java.util.LinkedHashMap?, V of java.util.LinkedHashMap?> p0: GET_VAR '<this>: kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus> declared in <root>.plus' type=kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus> origin=null
GET_VAR '<this>: kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus> declared in <root>.plus' type=kotlin.collections.Map<out K1 of <root>.plus, V1 of <root>.plus> origin=null
block: BLOCK type=@[ExtensionFunctionType] kotlin.Function1<java.util.LinkedHashMap<K1 of <root>.plus?, V1 of <root>.plus?>, kotlin.Unit> origin=LAMBDA block: BLOCK type=@[ExtensionFunctionType] kotlin.Function1<java.util.LinkedHashMap<K1 of <root>.plus?, V1 of <root>.plus?>, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:java.util.LinkedHashMap<K1 of <root>.plus?, V1 of <root>.plus?>) returnType:kotlin.Unit FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:java.util.LinkedHashMap<K1 of <root>.plus?, V1 of <root>.plus?>) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:java.util.LinkedHashMap<K1 of <root>.plus?, V1 of <root>.plus?> $receiver: VALUE_PARAMETER name:<this> type:java.util.LinkedHashMap<K1 of <root>.plus?, V1 of <root>.plus?>
@@ -2,12 +2,11 @@ FILE fqName:<root> fileName:/javaConstructorWithTypeParameters.kt
FUN name:test1 visibility:public modality:FINAL <> () returnType:<root>.J1 FUN name:test1 visibility:public modality:FINAL <> () returnType:<root>.J1
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (): <root>.J1 declared in <root>' RETURN type=kotlin.Nothing from='public final fun test1 (): <root>.J1 declared in <root>'
CALL 'public constructor <init> () declared in <root>.J1' type=<root>.J1 origin=null CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J1' type=<root>.J1 origin=null
FUN name:test2 visibility:public modality:FINAL <> () returnType:<root>.J1 FUN name:test2 visibility:public modality:FINAL <> () returnType:<root>.J1
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (): <root>.J1 declared in <root>' RETURN type=kotlin.Nothing from='public final fun test2 (): <root>.J1 declared in <root>'
CALL 'public constructor <init> (x1: X1 of <uninitialized parent>?) declared in <root>.J1' type=<root>.J1 origin=null CONSTRUCTOR_CALL 'public constructor <init> (x1: IrErrorType) declared in <root>.J1' type=<root>.J1 origin=null
x1: CONST Int type=kotlin.Int value=1
FUN name:test3 visibility:public modality:FINAL <> (j1:<root>.J1<kotlin.Any>) returnType:IrErrorType FUN name:test3 visibility:public modality:FINAL <> (j1:<root>.J1<kotlin.Any>) returnType:IrErrorType
VALUE_PARAMETER name:j1 index:0 type:<root>.J1<kotlin.Any> VALUE_PARAMETER name:j1 index:0 type:<root>.J1<kotlin.Any>
BLOCK_BODY BLOCK_BODY
@@ -2,28 +2,28 @@ FILE fqName:<root> fileName:/javaConstructorWithTypeParameters.kt
FUN name:test1 visibility:public modality:FINAL <> () returnType:<root>.J1<kotlin.Int> FUN name:test1 visibility:public modality:FINAL <> () returnType:<root>.J1<kotlin.Int>
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (): <root>.J1<kotlin.Int> declared in <root>' RETURN type=kotlin.Nothing from='public final fun test1 (): <root>.J1<kotlin.Int> declared in <root>'
CALL 'public constructor <init> () declared in <root>.J1' type=<root>.J1<kotlin.Int> origin=null CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J1' type=<root>.J1<kotlin.Int> origin=null
<T1>: kotlin.Int <class: T1>: kotlin.Int
FUN name:test2 visibility:public modality:FINAL <> () returnType:<root>.J1<kotlin.Int> FUN name:test2 visibility:public modality:FINAL <> () returnType:<root>.J1<kotlin.Int>
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test2 (): <root>.J1<kotlin.Int> declared in <root>' RETURN type=kotlin.Nothing from='public final fun test2 (): <root>.J1<kotlin.Int> declared in <root>'
CALL 'public constructor <init> <X1> (x1: X1 of <root>.J1.<init>?) declared in <root>.J1' type=<root>.J1<kotlin.Int> origin=null CONSTRUCTOR_CALL 'public constructor <init> <X1> (x1: X1 of <root>.J1.<init>?) declared in <root>.J1' type=<root>.J1<kotlin.Int> origin=null
<T1>: kotlin.Int <class: T1>: kotlin.Int
<X1>: kotlin.Int <X1>: kotlin.Int
x1: CONST Int type=kotlin.Int value=1 x1: CONST Int type=kotlin.Int value=1
FUN name:test3 visibility:public modality:FINAL <> (j1:<root>.J1<kotlin.Any>) returnType:<root>.J1.J2<kotlin.Int, kotlin.Any> FUN name:test3 visibility:public modality:FINAL <> (j1:<root>.J1<kotlin.Any>) returnType:<root>.J1.J2<kotlin.Int, kotlin.Any>
VALUE_PARAMETER name:j1 index:0 type:<root>.J1<kotlin.Any> VALUE_PARAMETER name:j1 index:0 type:<root>.J1<kotlin.Any>
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test3 (j1: <root>.J1<kotlin.Any>): <root>.J1.J2<kotlin.Int, kotlin.Any> declared in <root>' RETURN type=kotlin.Nothing from='public final fun test3 (j1: <root>.J1<kotlin.Any>): <root>.J1.J2<kotlin.Int, kotlin.Any> declared in <root>'
CALL 'public constructor <init> () declared in <root>.J1.J2' type=<root>.J1.J2<kotlin.Int, kotlin.Any> origin=null CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.J1.J2' type=<root>.J1.J2<kotlin.Int, kotlin.Any> origin=null
<T2>: kotlin.Int <class: T2>: kotlin.Int
$this: GET_VAR 'j1: <root>.J1<kotlin.Any> declared in <root>.test3' type=<root>.J1<kotlin.Any> origin=null $outer: GET_VAR 'j1: <root>.J1<kotlin.Any> declared in <root>.test3' type=<root>.J1<kotlin.Any> origin=null
FUN name:test4 visibility:public modality:FINAL <> (j1:<root>.J1<kotlin.Any>) returnType:<root>.J1.J2<kotlin.Int, kotlin.Any> FUN name:test4 visibility:public modality:FINAL <> (j1:<root>.J1<kotlin.Any>) returnType:<root>.J1.J2<kotlin.Int, kotlin.Any>
VALUE_PARAMETER name:j1 index:0 type:<root>.J1<kotlin.Any> VALUE_PARAMETER name:j1 index:0 type:<root>.J1<kotlin.Any>
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test4 (j1: <root>.J1<kotlin.Any>): <root>.J1.J2<kotlin.Int, kotlin.Any> declared in <root>' RETURN type=kotlin.Nothing from='public final fun test4 (j1: <root>.J1<kotlin.Any>): <root>.J1.J2<kotlin.Int, kotlin.Any> declared in <root>'
CALL 'public constructor <init> <X2> (x2: X2 of <root>.J1.J2.<init>?) declared in <root>.J1.J2' type=<root>.J1.J2<kotlin.Int, kotlin.Any> origin=null CONSTRUCTOR_CALL 'public constructor <init> <X2> (x2: X2 of <root>.J1.J2.<init>?) declared in <root>.J1.J2' type=<root>.J1.J2<kotlin.Int, kotlin.Any> origin=null
<T2>: kotlin.Int <class: T2>: kotlin.Int
<T1>: kotlin.Int <X2>: kotlin.Int
$this: GET_VAR 'j1: <root>.J1<kotlin.Any> declared in <root>.test4' type=<root>.J1<kotlin.Any> origin=null $outer: GET_VAR 'j1: <root>.J1<kotlin.Any> declared in <root>.test4' type=<root>.J1<kotlin.Any> origin=null
x2: CONST Int type=kotlin.Int value=1 x2: CONST Int type=kotlin.Int value=1
@@ -45,10 +45,12 @@ FILE fqName:<root> fileName:/intersectionType1.kt
BLOCK_BODY BLOCK_BODY
VAR name:a1 type:kotlin.Array<T of <uninitialized parent>> [val] VAR name:a1 type:kotlin.Array<T of <uninitialized parent>> [val]
CALL 'public final fun arrayOf (elements: kotlin.Array<out T of <uninitialized parent>>): kotlin.Array<T of <uninitialized parent>> [inline] declared in kotlin' type=kotlin.Array<T of <uninitialized parent>> origin=null CALL 'public final fun arrayOf (elements: kotlin.Array<out T of <uninitialized parent>>): kotlin.Array<T of <uninitialized parent>> [inline] declared in kotlin' type=kotlin.Array<T of <uninitialized parent>> origin=null
elements: CALL 'public constructor <init> () [primary] declared in <root>.In' type=<root>.In<I of <root>.In> origin=null elements: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.In' type=<root>.In<I of <root>.In> origin=null
<class: I>: <none>
VAR name:a2 type:kotlin.Array<T of <uninitialized parent>> [val] VAR name:a2 type:kotlin.Array<T of <uninitialized parent>> [val]
CALL 'public final fun arrayOf (elements: kotlin.Array<out T of <uninitialized parent>>): kotlin.Array<T of <uninitialized parent>> [inline] declared in kotlin' type=kotlin.Array<T of <uninitialized parent>> origin=null CALL 'public final fun arrayOf (elements: kotlin.Array<out T of <uninitialized parent>>): kotlin.Array<T of <uninitialized parent>> [inline] declared in kotlin' type=kotlin.Array<T of <uninitialized parent>> origin=null
elements: CALL 'public constructor <init> () [primary] declared in <root>.In' type=<root>.In<I of <root>.In> origin=null elements: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.In' type=<root>.In<I of <root>.In> origin=null
<class: I>: <none>
CALL 'public final fun foo <T> (a: kotlin.Array<<root>.In<T of <root>.foo>>, b: kotlin.Array<<root>.In<kotlin.String>>): kotlin.Boolean declared in <root>' type=kotlin.Boolean origin=null CALL 'public final fun foo <T> (a: kotlin.Array<<root>.In<T of <root>.foo>>, b: kotlin.Array<<root>.In<kotlin.String>>): kotlin.Boolean declared in <root>' type=kotlin.Boolean origin=null
<T>: <none> <T>: <none>
a: GET_VAR 'val a1: kotlin.Array<T of <uninitialized parent>> [val] declared in <root>.test' type=kotlin.Array<T of <uninitialized parent>> origin=null a: GET_VAR 'val a1: kotlin.Array<T of <uninitialized parent>> [val] declared in <root>.test' type=kotlin.Array<T of <uninitialized parent>> origin=null
@@ -85,9 +85,9 @@ FILE fqName:<root> fileName:/intersectionType2.kt
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): IrErrorType declared in <root>.foo' RETURN type=kotlin.Nothing from='local final fun <anonymous> (): IrErrorType declared in <root>.foo'
BLOCK type=<root>.B origin=null BLOCK type=<root>.B origin=null
VAR name:mm type:<root>.B [val] VAR name:mm type:<root>.B [val]
CALL 'public constructor <init> () [primary] declared in <root>.B' type=<root>.B origin=null CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.B' type=<root>.B origin=null
VAR name:nn type:<root>.C [val] VAR name:nn type:<root>.C [val]
CALL 'public constructor <init> () [primary] declared in <root>.C' type=<root>.C origin=null CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.C' type=<root>.C origin=null
VAR name:c type:<root>.B [val] VAR name:c type:<root>.B [val]
WHEN type=<root>.B origin=IF WHEN type=<root>.B origin=IF
BRANCH BRANCH
@@ -892,6 +892,11 @@ public class IrTextTestCaseGenerated extends AbstractIrTextTestCase {
runTest("compiler/testData/ir/irText/expressions/funImportedFromObject.kt"); runTest("compiler/testData/ir/irText/expressions/funImportedFromObject.kt");
} }
@TestMetadata("genericConstructorCallWithTypeArguments.kt")
public void testGenericConstructorCallWithTypeArguments() throws Exception {
runTest("compiler/testData/ir/irText/expressions/genericConstructorCallWithTypeArguments.kt");
}
@TestMetadata("genericPropertyCall.kt") @TestMetadata("genericPropertyCall.kt")
public void testGenericPropertyCall() throws Exception { public void testGenericPropertyCall() throws Exception {
runTest("compiler/testData/ir/irText/expressions/genericPropertyCall.kt"); runTest("compiler/testData/ir/irText/expressions/genericPropertyCall.kt");
@@ -59,14 +59,19 @@ interface IrBuilderExtension {
val BackendContext.localSymbolTable: SymbolTable val BackendContext.localSymbolTable: SymbolTable
private fun IrClass.declareSimpleFunctionWithExternalOverrides(descriptor: FunctionDescriptor): IrSimpleFunction { private fun IrClass.declareSimpleFunctionWithExternalOverrides(descriptor: FunctionDescriptor): IrSimpleFunction {
return compilerContext.localSymbolTable.declareSimpleFunction(startOffset, endOffset, SERIALIZABLE_PLUGIN_ORIGIN, descriptor).also {f -> return compilerContext.localSymbolTable.declareSimpleFunction(startOffset, endOffset, SERIALIZABLE_PLUGIN_ORIGIN, descriptor)
descriptor.overriddenDescriptors.mapTo(f.overriddenSymbols) { .also { f ->
compilerContext.externalSymbols.referenceSimpleFunction(it.original) descriptor.overriddenDescriptors.mapTo(f.overriddenSymbols) {
compilerContext.externalSymbols.referenceSimpleFunction(it.original)
}
} }
}
} }
fun IrClass.contributeFunction(descriptor: FunctionDescriptor, fromStubs: Boolean = false, bodyGen: IrBlockBodyBuilder.(IrFunction) -> Unit) { fun IrClass.contributeFunction(
descriptor: FunctionDescriptor,
fromStubs: Boolean = false,
bodyGen: IrBlockBodyBuilder.(IrFunction) -> Unit
) {
val f: IrSimpleFunction = if (!fromStubs) declareSimpleFunctionWithExternalOverrides( val f: IrSimpleFunction = if (!fromStubs) declareSimpleFunctionWithExternalOverrides(
descriptor descriptor
) else compilerContext.externalSymbols.referenceSimpleFunction(descriptor).owner ) else compilerContext.externalSymbols.referenceSimpleFunction(descriptor).owner
@@ -104,7 +109,7 @@ interface IrBuilderExtension {
callee: IrFunctionSymbol, callee: IrFunctionSymbol,
vararg args: IrExpression, vararg args: IrExpression,
typeHint: IrType? = null typeHint: IrType? = null
): IrCall { ): IrMemberAccessExpression {
val call = typeHint?.let { irCall(callee, type = it) } ?: irCall(callee) val call = typeHint?.let { irCall(callee, type = it) } ?: irCall(callee)
call.dispatchReceiver = dispatchReceiver call.dispatchReceiver = dispatchReceiver
args.forEachIndexed(call::putValueArgument) args.forEachIndexed(call::putValueArgument)
@@ -117,16 +122,17 @@ interface IrBuilderExtension {
typeArguments: List<IrType?>, typeArguments: List<IrType?>,
valueArguments: List<IrExpression>, valueArguments: List<IrExpression>,
returnTypeHint: IrType? = null returnTypeHint: IrType? = null
): IrCall = irInvoke( ): IrMemberAccessExpression =
dispatchReceiver, irInvoke(
callee, dispatchReceiver,
args = *valueArguments.toTypedArray(), callee,
typeHint = returnTypeHint args = *valueArguments.toTypedArray(),
).also { call -> typeArguments.forEachIndexed(call::putTypeArgument) } typeHint = returnTypeHint
).also { call -> typeArguments.forEachIndexed(call::putTypeArgument) }
fun IrBuilderWithScope.createArrayOfExpression( fun IrBuilderWithScope.createArrayOfExpression(
arrayElementType: IrType, arrayElementType: IrType,
arrayElements: List<IrExpression> arrayElements: List<IrExpression>
): IrExpression { ): IrExpression {
val arrayType = compilerContext.ir.symbols.array.typeWith(arrayElementType) val arrayType = compilerContext.ir.symbols.array.typeWith(arrayElementType)
@@ -389,7 +395,8 @@ interface IrBuilderExtension {
fun IrBuilderWithScope.classReference(classType: KotlinType): IrClassReference { fun IrBuilderWithScope.classReference(classType: KotlinType): IrClassReference {
val clazz = classType.toClassDescriptor!! val clazz = classType.toClassDescriptor!!
val kClass = clazz.module.findClassAcrossModuleDependencies(ClassId(FqName("kotlin.reflect"), Name.identifier("KClass")))!! val kClass = clazz.module.findClassAcrossModuleDependencies(ClassId(FqName("kotlin.reflect"), Name.identifier("KClass")))!!
val returnType = KotlinTypeFactory.simpleNotNullType(Annotations.EMPTY, kClass, listOf(TypeProjectionImpl(Variance.INVARIANT, classType))) val returnType =
KotlinTypeFactory.simpleNotNullType(Annotations.EMPTY, kClass, listOf(TypeProjectionImpl(Variance.INVARIANT, classType)))
return IrClassReferenceImpl( return IrClassReferenceImpl(
startOffset, startOffset,
endOffset, endOffset,
@@ -432,25 +439,43 @@ interface IrBuilderExtension {
} }
// Does not use sti and therefore does not perform encoder calls optimization // Does not use sti and therefore does not perform encoder calls optimization
fun IrBuilderWithScope.serializerTower(generator: SerializerIrGenerator, dispatchReceiverParameter: IrValueParameter, property: SerializableProperty): IrExpression? { fun IrBuilderWithScope.serializerTower(
generator: SerializerIrGenerator,
dispatchReceiverParameter: IrValueParameter,
property: SerializableProperty
): IrExpression? {
val nullableSerClass = val nullableSerClass =
compilerContext.externalSymbols.referenceClass(property.module.getClassFromInternalSerializationPackage(SpecialBuiltins.nullableSerializer)) compilerContext.externalSymbols.referenceClass(property.module.getClassFromInternalSerializationPackage(SpecialBuiltins.nullableSerializer))
val serializer = val serializer =
property.serializableWith?.toClassDescriptor property.serializableWith?.toClassDescriptor
?: if (!property.type.isTypeParameter()) generator.findTypeSerializerOrContext( ?: if (!property.type.isTypeParameter()) generator.findTypeSerializerOrContext(
property.module, property.module,
property.type, property.type,
property.descriptor.annotations, property.descriptor.annotations,
property.descriptor.findPsi() property.descriptor.findPsi()
) else null ) else null
return serializerInstance(generator, dispatchReceiverParameter, generator.serializableDescriptor, serializer, property.module, property.type, genericIndex = property.genericIndex) return serializerInstance(
?.let { expr -> wrapWithNullableSerializerIfNeeded(property.module, property.type, expr, nullableSerClass) } generator,
dispatchReceiverParameter,
generator.serializableDescriptor,
serializer,
property.module,
property.type,
genericIndex = property.genericIndex
)
?.let { expr -> wrapWithNullableSerializerIfNeeded(property.module, property.type, expr, nullableSerClass) }
} }
private fun IrBuilderWithScope.wrapWithNullableSerializerIfNeeded(module: ModuleDescriptor, type: KotlinType, expression: IrExpression, nullableSerializerClass: IrClassSymbol): IrExpression { private fun IrBuilderWithScope.wrapWithNullableSerializerIfNeeded(
module: ModuleDescriptor,
type: KotlinType,
expression: IrExpression,
nullableSerializerClass: IrClassSymbol
): IrExpression {
return if (type.isMarkedNullable) return if (type.isMarkedNullable)
irInvoke(null, nullableSerializerClass.constructors.toList()[0], irInvoke(
typeArguments = listOf(type.makeNotNullable().toIrType()), null, nullableSerializerClass.constructors.toList()[0],
typeArguments = listOf(type.makeNotNullable().toIrType()),
valueArguments = listOf(expression), valueArguments = listOf(expression),
returnTypeHint = wrapIrTypeIntoKSerializerIrType(module, type.toIrType()) returnTypeHint = wrapIrTypeIntoKSerializerIrType(module, type.toIrType())
) )
@@ -513,8 +538,20 @@ interface IrBuilderExtension {
} }
else -> { else -> {
args = kType.arguments.map { args = kType.arguments.map {
val argSer = enclosingGenerator.findTypeSerializerOrContext(module, it.type, sourceElement = serializerClassOriginal.findPsi()) val argSer = enclosingGenerator.findTypeSerializerOrContext(
val expr = serializerInstance(enclosingGenerator, dispatchReceiverParameter, serializableDescriptor, argSer, module, it.type, it.type.genericIndex) module,
it.type,
sourceElement = serializerClassOriginal.findPsi()
)
val expr = serializerInstance(
enclosingGenerator,
dispatchReceiverParameter,
serializableDescriptor,
argSer,
module,
it.type,
it.type.genericIndex
)
?: return null ?: return null
wrapWithNullableSerializerIfNeeded(module, it.type, expr, nullableSerClass) wrapWithNullableSerializerIfNeeded(module, it.type, expr, nullableSerClass)
} }
@@ -132,7 +132,7 @@ class SerializerIrGenerator(val irClass: IrClass, override val compilerContext:
} }
private fun IrBlockBodyBuilder.copySerialInfoAnnotationsToDescriptor( private fun IrBlockBodyBuilder.copySerialInfoAnnotationsToDescriptor(
annotations: List<IrCall>, annotations: List<IrConstructorCall>,
receiver: IrExpression, receiver: IrExpression,
method: IrFunctionSymbol method: IrFunctionSymbol
) { ) {