From 76ab631214d09a1e188d123f6bf0448910768c41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Sch=C3=A4fer?= Date: Mon, 16 Sep 2019 17:24:59 +0200 Subject: [PATCH] psi2ir: Optimize generated data class members - Access underlying fields directly, instead of using accessors. This is safe since data classes are always final. - Don't generate a temporary variable in hashCode to use as the accumulator. Both optimizations are effectively present in the current JVM backend and with these changes the generated code is much closer to what the current backend generates. --- .../generators/DataClassMembersGenerator.kt | 92 ++--- .../classes/dataClassWithArrayMembers.txt | 382 ++++++++---------- .../ir/irText/classes/dataClasses.txt | 314 +++++++------- .../ir/irText/classes/dataClassesGeneric.txt | 140 +++---- .../ir/irText/classes/inlineClass.txt | 22 +- .../lambdaInDataClassDefaultParameter.txt | 60 ++- .../parameters/dataClassMembers.txt | 78 ++-- .../irText/lambdas/destructuringInLambda.txt | 58 ++- .../synthesizedDataClassMembers.txt | 60 ++- 9 files changed, 538 insertions(+), 668 deletions(-) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DataClassMembersGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DataClassMembersGenerator.kt index 8c21756723a..f6834786f3e 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DataClassMembersGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DataClassMembersGenerator.kt @@ -22,16 +22,13 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.builders.* -import org.jetbrains.kotlin.ir.declarations.IrClass -import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin -import org.jetbrains.kotlin.ir.declarations.IrFunction -import org.jetbrains.kotlin.ir.declarations.putDefault +import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl import org.jetbrains.kotlin.ir.expressions.mapTypeParameters import org.jetbrains.kotlin.ir.expressions.mapValueParameters -import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.util.declareSimpleFunctionWithOverrides +import org.jetbrains.kotlin.ir.util.properties import org.jetbrains.kotlin.ir.util.referenceFunction import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtParameter @@ -43,6 +40,7 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.checker.KotlinTypeChecker +import org.jetbrains.kotlin.types.typeUtil.representativeUpperBound class DataClassMembersGenerator( declarationGenerator: DeclarationGenerator @@ -133,17 +131,17 @@ class DataClassMembersGenerator( ?: throw AssertionError("No definition for data class constructor parameter $parameter") buildMember(function, ktParameter) { - +irReturn(irGet(function.returnType!!.toIrType(), irThis(), getPropertyGetterSymbol(parameter))) + +irReturn(irGetField(irThis(), getBackingField(parameter))) } } - private fun getPropertyGetterSymbol(parameter: ValueParameterDescriptor): IrFunctionSymbol { + private fun getBackingField(parameter: ValueParameterDescriptor): IrField { val property = getOrFail(BindingContext.VALUE_PARAMETER_AS_PROPERTY, parameter) - return getPropertyGetterSymbol(property) + return getBackingField(property) } - private fun getPropertyGetterSymbol(property: PropertyDescriptor) = - context.symbolTable.referenceFunction(property.getter!!) + private fun getBackingField(property: PropertyDescriptor) = + irClass.properties.single { it.descriptor == property }.backingField!! override fun generateCopyFunction(function: FunctionDescriptor, constructorParameters: List) { if (!irClass.isData) return @@ -154,7 +152,7 @@ class DataClassMembersGenerator( buildMember(function, declaration) { irFunction -> function.valueParameters.forEach { parameter -> - putDefault(parameter, irGet(parameter.type.toIrType(), irThis(), getPropertyGetterSymbol(parameter))) + putDefault(parameter, irGetField(irThis(), getBackingField(parameter))) } +irReturn( irCall( @@ -181,9 +179,9 @@ class DataClassMembersGenerator( +irIfThenReturnFalse(irNotIs(irOther(), irType)) val otherWithCast = irTemporary(irAs(irOther(), irType), "other_with_cast") for (property in properties) { - val irPropertyType = property.type.toIrType() - val arg1 = irGet(irPropertyType, irThis(), getPropertyGetterSymbol(property)) - val arg2 = irGet(irPropertyType, irGet(irType, otherWithCast.symbol), getPropertyGetterSymbol(property)) + val field = getBackingField(property) + val arg1 = irGetField(irThis(), field) + val arg2 = irGetField(irGet(irType, otherWithCast.symbol), field) +irIfThenReturnFalse(irNotEquals(arg1, arg2)) } +irReturnTrue() @@ -202,9 +200,8 @@ class DataClassMembersGenerator( .let { context.symbolTable.referenceFunction(it) } - private fun getHashCodeFunction(type: KotlinType): FunctionDescriptor { - val typeConstructorDescriptor = type.constructor.declarationDescriptor - return when (typeConstructorDescriptor) { + private fun getHashCodeFunction(type: KotlinType): FunctionDescriptor = + when (val typeConstructorDescriptor = type.constructor.declarationDescriptor) { is ClassDescriptor -> if (KotlinBuiltIns.isArrayOrPrimitiveArray(typeConstructorDescriptor)) context.irBuiltIns.dataClassArrayMemberHashCodeSymbol.descriptor @@ -212,62 +209,47 @@ class DataClassMembersGenerator( type.memberScope.findFirstFunction("hashCode") { it.valueParameters.isEmpty() } is TypeParameterDescriptor -> - getHashCodeFunction(context.builtIns.anyType) // TODO + getHashCodeFunction(typeConstructorDescriptor.representativeUpperBound) else -> throw AssertionError("Unexpected type: $type") } - } - override fun generateHashCodeMethod(function: FunctionDescriptor, properties: List) { buildMember(function, declaration) { val irIntType = context.irBuiltIns.intType - val result = irTemporaryVar(irInt(0), "result").symbol - var first = true + var result: IrExpression? = null for (property in properties) { - val hashCodeOfProperty = getHashCodeOfProperty(irThis(), property) - val irNewValue = - if (first) hashCodeOfProperty - else - irCallOp( - intPlus, - irIntType, - irCallOp( - intTimes, irIntType, irGet(irIntType, result), irInt(31) - ), - hashCodeOfProperty - ) - +irSetVar(result, irNewValue) - first = false + val hashCodeOfProperty = getHashCodeOfProperty(property) + result = if (result == null) { + hashCodeOfProperty + } else { + val shiftedResult = irCallOp(intTimes, irIntType, result, irInt(31)) + irCallOp(intPlus, irIntType, shiftedResult, hashCodeOfProperty) + } } - +irReturn(irGet(irIntType, result)) + +irReturn(result ?: irInt(0)) } } - private fun MemberFunctionBuilder.getHashCodeOfProperty(receiver: IrExpression, property: PropertyDescriptor): IrExpression { - val getterSymbol = getPropertyGetterSymbol(property) + private fun MemberFunctionBuilder.getHashCodeOfProperty(property: PropertyDescriptor): IrExpression { + val field = getBackingField(property) val propertyType = property.type - val irPropertyType = propertyType.toIrType() return when { propertyType.containsNull() -> - irLetS( - irGet(irPropertyType, receiver, getterSymbol) - ) { variable -> - irIfNull( - context.irBuiltIns.intType, - irGet(irPropertyType, variable), - irInt(0), - getHashCodeOf( - propertyType, - irGet(irPropertyType, variable) - ) + irIfNull( + context.irBuiltIns.intType, + irGetField(irThis(), field), + irInt(0), + getHashCodeOf( + propertyType, + irGetField(irThis(), field) ) - } + ) else -> getHashCodeOf( propertyType, - irGet(irPropertyType, receiver, getterSymbol) + irGetField(irThis(), field) ) } } @@ -290,13 +272,11 @@ class DataClassMembersGenerator( irConcat.addArgument(irString(classDescriptor.name.asString() + "(")) var first = true for (property in properties) { - val irPropertyType = property.type.toIrType() - if (!first) irConcat.addArgument(irString(", ")) irConcat.addArgument(irString(property.name.asString() + "=")) - val irPropertyValue = irGet(irPropertyType, irThis(), getPropertyGetterSymbol(property)) + val irPropertyValue = irGetField(irThis(), getBackingField(property)) val typeConstructorDescriptor = property.type.constructor.declarationDescriptor val irPropertyStringValue = diff --git a/compiler/testData/ir/irText/classes/dataClassWithArrayMembers.txt b/compiler/testData/ir/irText/classes/dataClassWithArrayMembers.txt index 4bfa7e50be8..856bca272cf 100644 --- a/compiler/testData/ir/irText/classes/dataClassWithArrayMembers.txt +++ b/compiler/testData/ir/irText/classes/dataClassWithArrayMembers.txt @@ -117,94 +117,94 @@ FILE fqName: fileName:/dataClassWithArrayMembers.kt $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Array declared in .Test1' - CALL 'public final fun (): kotlin.Array declared in .Test1' type=kotlin.Array origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component1' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:stringArray type:kotlin.Array visibility:private [final]' type=kotlin.Array origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component1' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.CharArray $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component2 (): kotlin.CharArray declared in .Test1' - CALL 'public final fun (): kotlin.CharArray declared in .Test1' type=kotlin.CharArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component2' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:charArray type:kotlin.CharArray visibility:private [final]' type=kotlin.CharArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component2' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component3 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.BooleanArray $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component3 (): kotlin.BooleanArray declared in .Test1' - CALL 'public final fun (): kotlin.BooleanArray declared in .Test1' type=kotlin.BooleanArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component3' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:booleanArray type:kotlin.BooleanArray visibility:private [final]' type=kotlin.BooleanArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component3' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component4 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.ByteArray $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component4 (): kotlin.ByteArray declared in .Test1' - CALL 'public final fun (): kotlin.ByteArray declared in .Test1' type=kotlin.ByteArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component4' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:byteArray type:kotlin.ByteArray visibility:private [final]' type=kotlin.ByteArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component4' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component5 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.ShortArray $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component5 (): kotlin.ShortArray declared in .Test1' - CALL 'public final fun (): kotlin.ShortArray declared in .Test1' type=kotlin.ShortArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component5' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:shortArray type:kotlin.ShortArray visibility:private [final]' type=kotlin.ShortArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component5' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component6 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.IntArray $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component6 (): kotlin.IntArray declared in .Test1' - CALL 'public final fun (): kotlin.IntArray declared in .Test1' type=kotlin.IntArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component6' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:intArray type:kotlin.IntArray visibility:private [final]' type=kotlin.IntArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component6' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component7 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.LongArray $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component7 (): kotlin.LongArray declared in .Test1' - CALL 'public final fun (): kotlin.LongArray declared in .Test1' type=kotlin.LongArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component7' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:longArray type:kotlin.LongArray visibility:private [final]' type=kotlin.LongArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component7' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component8 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.FloatArray $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component8 (): kotlin.FloatArray declared in .Test1' - CALL 'public final fun (): kotlin.FloatArray declared in .Test1' type=kotlin.FloatArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component8' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:floatArray type:kotlin.FloatArray visibility:private [final]' type=kotlin.FloatArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component8' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component9 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.DoubleArray $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component9 (): kotlin.DoubleArray declared in .Test1' - CALL 'public final fun (): kotlin.DoubleArray declared in .Test1' type=kotlin.DoubleArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component9' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:doubleArray type:kotlin.DoubleArray visibility:private [final]' type=kotlin.DoubleArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component9' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test1, stringArray:kotlin.Array, charArray:kotlin.CharArray, booleanArray:kotlin.BooleanArray, byteArray:kotlin.ByteArray, shortArray:kotlin.ShortArray, intArray:kotlin.IntArray, longArray:kotlin.LongArray, floatArray:kotlin.FloatArray, doubleArray:kotlin.DoubleArray) returnType:.Test1 $this: VALUE_PARAMETER name: type:.Test1 VALUE_PARAMETER name:stringArray index:0 type:kotlin.Array EXPRESSION_BODY - CALL 'public final fun (): kotlin.Array declared in .Test1' type=kotlin.Array origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:stringArray type:kotlin.Array visibility:private [final]' type=kotlin.Array origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:charArray index:1 type:kotlin.CharArray EXPRESSION_BODY - CALL 'public final fun (): kotlin.CharArray declared in .Test1' type=kotlin.CharArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:charArray type:kotlin.CharArray visibility:private [final]' type=kotlin.CharArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:booleanArray index:2 type:kotlin.BooleanArray EXPRESSION_BODY - CALL 'public final fun (): kotlin.BooleanArray declared in .Test1' type=kotlin.BooleanArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:booleanArray type:kotlin.BooleanArray visibility:private [final]' type=kotlin.BooleanArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:byteArray index:3 type:kotlin.ByteArray EXPRESSION_BODY - CALL 'public final fun (): kotlin.ByteArray declared in .Test1' type=kotlin.ByteArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:byteArray type:kotlin.ByteArray visibility:private [final]' type=kotlin.ByteArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:shortArray index:4 type:kotlin.ShortArray EXPRESSION_BODY - CALL 'public final fun (): kotlin.ShortArray declared in .Test1' type=kotlin.ShortArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:shortArray type:kotlin.ShortArray visibility:private [final]' type=kotlin.ShortArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:intArray index:5 type:kotlin.IntArray EXPRESSION_BODY - CALL 'public final fun (): kotlin.IntArray declared in .Test1' type=kotlin.IntArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:intArray type:kotlin.IntArray visibility:private [final]' type=kotlin.IntArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:longArray index:6 type:kotlin.LongArray EXPRESSION_BODY - CALL 'public final fun (): kotlin.LongArray declared in .Test1' type=kotlin.LongArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:longArray type:kotlin.LongArray visibility:private [final]' type=kotlin.LongArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:floatArray index:7 type:kotlin.FloatArray EXPRESSION_BODY - CALL 'public final fun (): kotlin.FloatArray declared in .Test1' type=kotlin.FloatArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:floatArray type:kotlin.FloatArray visibility:private [final]' type=kotlin.FloatArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:doubleArray index:8 type:kotlin.DoubleArray EXPRESSION_BODY - CALL 'public final fun (): kotlin.DoubleArray declared in .Test1' type=kotlin.DoubleArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:doubleArray type:kotlin.DoubleArray visibility:private [final]' type=kotlin.DoubleArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (stringArray: kotlin.Array, charArray: kotlin.CharArray, booleanArray: kotlin.BooleanArray, byteArray: kotlin.ByteArray, shortArray: kotlin.ShortArray, intArray: kotlin.IntArray, longArray: kotlin.LongArray, floatArray: kotlin.FloatArray, doubleArray: kotlin.DoubleArray): .Test1 declared in .Test1' CONSTRUCTOR_CALL 'public constructor (stringArray: kotlin.Array, charArray: kotlin.CharArray, booleanArray: kotlin.BooleanArray, byteArray: kotlin.ByteArray, shortArray: kotlin.ShortArray, intArray: kotlin.IntArray, longArray: kotlin.LongArray, floatArray: kotlin.FloatArray, doubleArray: kotlin.DoubleArray) [primary] declared in .Test1' type=.Test1 origin=null @@ -227,126 +227,106 @@ FILE fqName: fileName:/dataClassWithArrayMembers.kt CONST String type=kotlin.String value="Test1(" CONST String type=kotlin.String value="stringArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.Array declared in .Test1' type=kotlin.Array origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:stringArray type:kotlin.Array visibility:private [final]' type=kotlin.Array origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="charArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.CharArray declared in .Test1' type=kotlin.CharArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:charArray type:kotlin.CharArray visibility:private [final]' type=kotlin.CharArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="booleanArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.BooleanArray declared in .Test1' type=kotlin.BooleanArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:booleanArray type:kotlin.BooleanArray visibility:private [final]' type=kotlin.BooleanArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="byteArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.ByteArray declared in .Test1' type=kotlin.ByteArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:byteArray type:kotlin.ByteArray visibility:private [final]' type=kotlin.ByteArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="shortArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.ShortArray declared in .Test1' type=kotlin.ShortArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:shortArray type:kotlin.ShortArray visibility:private [final]' type=kotlin.ShortArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="intArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.IntArray declared in .Test1' type=kotlin.IntArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:intArray type:kotlin.IntArray visibility:private [final]' type=kotlin.IntArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="longArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.LongArray declared in .Test1' type=kotlin.LongArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:longArray type:kotlin.LongArray visibility:private [final]' type=kotlin.LongArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="floatArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.FloatArray declared in .Test1' type=kotlin.FloatArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:floatArray type:kotlin.FloatArray visibility:private [final]' type=kotlin.FloatArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="doubleArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.DoubleArray declared in .Test1' type=kotlin.DoubleArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:doubleArray type:kotlin.DoubleArray visibility:private [final]' type=kotlin.DoubleArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test1) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.Array declared in .Test1' type=kotlin.Array origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.CharArray declared in .Test1' type=kotlin.CharArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.BooleanArray declared in .Test1' type=kotlin.BooleanArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.ByteArray declared in .Test1' type=kotlin.ByteArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.ShortArray declared in .Test1' type=kotlin.ShortArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.IntArray declared in .Test1' type=kotlin.IntArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.LongArray declared in .Test1' type=kotlin.LongArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.FloatArray declared in .Test1' type=kotlin.FloatArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.DoubleArray declared in .Test1' type=kotlin.DoubleArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test1' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null + CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:stringArray type:kotlin.Array visibility:private [final]' type=kotlin.Array origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:charArray type:kotlin.CharArray visibility:private [final]' type=kotlin.CharArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:booleanArray type:kotlin.BooleanArray visibility:private [final]' type=kotlin.BooleanArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:byteArray type:kotlin.ByteArray visibility:private [final]' type=kotlin.ByteArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:shortArray type:kotlin.ShortArray visibility:private [final]' type=kotlin.ShortArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:intArray type:kotlin.IntArray visibility:private [final]' type=kotlin.IntArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:longArray type:kotlin.LongArray visibility:private [final]' type=kotlin.LongArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:floatArray type:kotlin.FloatArray visibility:private [final]' type=kotlin.FloatArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:doubleArray type:kotlin.DoubleArray visibility:private [final]' type=kotlin.DoubleArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test1, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -373,90 +353,90 @@ FILE fqName: fileName:/dataClassWithArrayMembers.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Array declared in .Test1' type=kotlin.Array origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.Array declared in .Test1' type=kotlin.Array origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:stringArray type:kotlin.Array visibility:private [final]' type=kotlin.Array origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:stringArray type:kotlin.Array visibility:private [final]' type=kotlin.Array origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.CharArray declared in .Test1' type=kotlin.CharArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.CharArray declared in .Test1' type=kotlin.CharArray origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:charArray type:kotlin.CharArray visibility:private [final]' type=kotlin.CharArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:charArray type:kotlin.CharArray visibility:private [final]' type=kotlin.CharArray origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.BooleanArray declared in .Test1' type=kotlin.BooleanArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.BooleanArray declared in .Test1' type=kotlin.BooleanArray origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:booleanArray type:kotlin.BooleanArray visibility:private [final]' type=kotlin.BooleanArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:booleanArray type:kotlin.BooleanArray visibility:private [final]' type=kotlin.BooleanArray origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.ByteArray declared in .Test1' type=kotlin.ByteArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.ByteArray declared in .Test1' type=kotlin.ByteArray origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:byteArray type:kotlin.ByteArray visibility:private [final]' type=kotlin.ByteArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:byteArray type:kotlin.ByteArray visibility:private [final]' type=kotlin.ByteArray origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.ShortArray declared in .Test1' type=kotlin.ShortArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.ShortArray declared in .Test1' type=kotlin.ShortArray origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:shortArray type:kotlin.ShortArray visibility:private [final]' type=kotlin.ShortArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:shortArray type:kotlin.ShortArray visibility:private [final]' type=kotlin.ShortArray origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.IntArray declared in .Test1' type=kotlin.IntArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.IntArray declared in .Test1' type=kotlin.IntArray origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:intArray type:kotlin.IntArray visibility:private [final]' type=kotlin.IntArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:intArray type:kotlin.IntArray visibility:private [final]' type=kotlin.IntArray origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.LongArray declared in .Test1' type=kotlin.LongArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.LongArray declared in .Test1' type=kotlin.LongArray origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:longArray type:kotlin.LongArray visibility:private [final]' type=kotlin.LongArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:longArray type:kotlin.LongArray visibility:private [final]' type=kotlin.LongArray origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.FloatArray declared in .Test1' type=kotlin.FloatArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.FloatArray declared in .Test1' type=kotlin.FloatArray origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:floatArray type:kotlin.FloatArray visibility:private [final]' type=kotlin.FloatArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:floatArray type:kotlin.FloatArray visibility:private [final]' type=kotlin.FloatArray origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.DoubleArray declared in .Test1' type=kotlin.DoubleArray origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.DoubleArray declared in .Test1' type=kotlin.DoubleArray origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:doubleArray type:kotlin.DoubleArray visibility:private [final]' type=kotlin.DoubleArray origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:doubleArray type:kotlin.DoubleArray visibility:private [final]' type=kotlin.DoubleArray origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' @@ -484,14 +464,14 @@ FILE fqName: fileName:/dataClassWithArrayMembers.kt $this: VALUE_PARAMETER name: type:.Test2.Test2> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Array.Test2> declared in .Test2' - CALL 'public final fun (): kotlin.Array.Test2> declared in .Test2' type=kotlin.Array.Test2> origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.component1' type=.Test2.Test2> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:genericArray type:kotlin.Array.Test2> visibility:private [final]' type=kotlin.Array.Test2> origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.component1' type=.Test2.Test2> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test2.Test2>, genericArray:kotlin.Array.Test2>) returnType:.Test2.Test2> $this: VALUE_PARAMETER name: type:.Test2.Test2> VALUE_PARAMETER name:genericArray index:0 type:kotlin.Array.Test2> EXPRESSION_BODY - CALL 'public final fun (): kotlin.Array.Test2> declared in .Test2' type=kotlin.Array.Test2> origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.copy' type=.Test2.Test2> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:genericArray type:kotlin.Array.Test2> visibility:private [final]' type=kotlin.Array.Test2> origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.copy' type=.Test2.Test2> origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (genericArray: kotlin.Array.Test2>): .Test2.Test2> declared in .Test2' CONSTRUCTOR_CALL 'public constructor (genericArray: kotlin.Array.Test2>) [primary] declared in .Test2' type=.Test2.Test2> origin=null @@ -507,22 +487,18 @@ FILE fqName: fileName:/dataClassWithArrayMembers.kt CONST String type=kotlin.String value="Test2(" CONST String type=kotlin.String value="genericArray=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.Array.Test2> declared in .Test2' type=kotlin.Array.Test2> origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.toString' type=.Test2.Test2> origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:genericArray type:kotlin.Array.Test2> visibility:private [final]' type=kotlin.Array.Test2> origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.toString' type=.Test2.Test2> origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test2.Test2>) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test2.Test2> BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test2.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: CALL 'public final fun (): kotlin.Array.Test2> declared in .Test2' type=kotlin.Array.Test2> origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.hashCode' type=.Test2.Test2> origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test2' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test2.hashCode' type=kotlin.Int origin=null + CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:genericArray type:kotlin.Array.Test2> visibility:private [final]' type=kotlin.Array.Test2> origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.hashCode' type=.Test2.Test2> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test2.Test2>, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -549,10 +525,10 @@ FILE fqName: fileName:/dataClassWithArrayMembers.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Array.Test2> declared in .Test2' type=kotlin.Array.Test2> origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.equals' type=.Test2.Test2> origin=null - arg1: CALL 'public final fun (): kotlin.Array.Test2> declared in .Test2' type=kotlin.Array.Test2> origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test2.Test2> [val] declared in .Test2.equals' type=.Test2.Test2> origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:genericArray type:kotlin.Array.Test2> visibility:private [final]' type=kotlin.Array.Test2> origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.equals' type=.Test2.Test2> origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:genericArray type:kotlin.Array.Test2> visibility:private [final]' type=kotlin.Array.Test2> origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test2.Test2> [val] declared in .Test2.equals' type=.Test2.Test2> origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test2' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test2' @@ -579,14 +555,14 @@ FILE fqName: fileName:/dataClassWithArrayMembers.kt $this: VALUE_PARAMETER name: type:.Test3 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Array? declared in .Test3' - CALL 'public final fun (): kotlin.Array? declared in .Test3' type=kotlin.Array? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.component1' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anyArrayN type:kotlin.Array? visibility:private [final]' type=kotlin.Array? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.component1' type=.Test3 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test3, anyArrayN:kotlin.Array?) returnType:.Test3 $this: VALUE_PARAMETER name: type:.Test3 VALUE_PARAMETER name:anyArrayN index:0 type:kotlin.Array? EXPRESSION_BODY - CALL 'public final fun (): kotlin.Array? declared in .Test3' type=kotlin.Array? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anyArrayN type:kotlin.Array? visibility:private [final]' type=kotlin.Array? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (anyArrayN: kotlin.Array?): .Test3 declared in .Test3' CONSTRUCTOR_CALL 'public constructor (anyArrayN: kotlin.Array?) [primary] declared in .Test3' type=.Test3 origin=null @@ -601,33 +577,27 @@ FILE fqName: fileName:/dataClassWithArrayMembers.kt CONST String type=kotlin.String value="Test3(" CONST String type=kotlin.String value="anyArrayN=" CALL 'public final fun dataClassArrayMemberToString (arg0: kotlin.Any?): kotlin.String declared in kotlin.internal.ir' type=kotlin.String origin=null - arg0: CALL 'public final fun (): kotlin.Array? declared in .Test3' type=kotlin.Array? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anyArrayN type:kotlin.Array? visibility:private [final]' type=kotlin.Array? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test3) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test3 BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Unit origin=EQ - BLOCK type=kotlin.Int origin=null - VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Array? [val] - CALL 'public final fun (): kotlin.Array? declared in .Test3' type=kotlin.Array? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null - WHEN type=kotlin.Int origin=null - BRANCH - if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ - arg0: GET_VAR 'val tmp1: kotlin.Array? [val] declared in .Test3.hashCode' type=kotlin.Array? origin=null - arg1: CONST Null type=kotlin.Nothing? value=null - then: CONST Int type=kotlin.Int value=0 - BRANCH - if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null - arg0: GET_VAR 'val tmp1: kotlin.Array? [val] declared in .Test3.hashCode' type=kotlin.Array? origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test3' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Int origin=null + WHEN type=kotlin.Int origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anyArrayN type:kotlin.Array? visibility:private [final]' type=kotlin.Array? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: CONST Int type=kotlin.Int value=0 + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public final fun dataClassArrayMemberHashCode (arg0: kotlin.Any): kotlin.Int declared in kotlin.internal.ir' type=kotlin.Int origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anyArrayN type:kotlin.Array? visibility:private [final]' type=kotlin.Array? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test3, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -654,10 +624,10 @@ FILE fqName: fileName:/dataClassWithArrayMembers.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Array? declared in .Test3' type=kotlin.Array? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null - arg1: CALL 'public final fun (): kotlin.Array? declared in .Test3' type=kotlin.Array? origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anyArrayN type:kotlin.Array? visibility:private [final]' type=kotlin.Array? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anyArrayN type:kotlin.Array? visibility:private [final]' type=kotlin.Array? origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test3' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test3' diff --git a/compiler/testData/ir/irText/classes/dataClasses.txt b/compiler/testData/ir/irText/classes/dataClasses.txt index fcc8f8b95c9..dff344dbfe7 100644 --- a/compiler/testData/ir/irText/classes/dataClasses.txt +++ b/compiler/testData/ir/irText/classes/dataClasses.txt @@ -45,34 +45,34 @@ FILE fqName: fileName:/dataClasses.kt $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Int declared in .Test1' - CALL 'public final fun (): kotlin.Int declared in .Test1' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component1' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component1' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.String $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component2 (): kotlin.String declared in .Test1' - CALL 'public final fun (): kotlin.String declared in .Test1' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component2' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component2' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component3 visibility:public modality:FINAL <> ($this:.Test1) returnType:kotlin.Any $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component3 (): kotlin.Any declared in .Test1' - CALL 'public final fun (): kotlin.Any declared in .Test1' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.component3' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.component3' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test1, x:kotlin.Int, y:kotlin.String, z:kotlin.Any) returnType:.Test1 $this: VALUE_PARAMETER name: type:.Test1 VALUE_PARAMETER name:x index:0 type:kotlin.Int EXPRESSION_BODY - CALL 'public final fun (): kotlin.Int declared in .Test1' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:y index:1 type:kotlin.String EXPRESSION_BODY - CALL 'public final fun (): kotlin.String declared in .Test1' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null VALUE_PARAMETER name:z index:2 type:kotlin.Any EXPRESSION_BODY - CALL 'public final fun (): kotlin.Any declared in .Test1' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.copy' type=.Test1 origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (x: kotlin.Int, y: kotlin.String, z: kotlin.Any): .Test1 declared in .Test1' CONSTRUCTOR_CALL 'public constructor (x: kotlin.Int, y: kotlin.String, z: kotlin.Any) [primary] declared in .Test1' type=.Test1 origin=null @@ -88,46 +88,38 @@ FILE fqName: fileName:/dataClasses.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Test1(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): kotlin.Int declared in .Test1' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="y=" - CALL 'public final fun (): kotlin.String declared in .Test1' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="z=" - CALL 'public final fun (): kotlin.Any declared in .Test1' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.toString' type=.Test1 origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test1) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test1 BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.Int declared in .Test1' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ + RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test1' CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.String declared in .Test1' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null other: CONST Int type=kotlin.Int value=31 other: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.Any declared in .Test1' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null - RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test1' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.hashCode' type=.Test1 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test1, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -154,30 +146,30 @@ FILE fqName: fileName:/dataClasses.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Int declared in .Test1' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.Int declared in .Test1' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.String declared in .Test1' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.String declared in .Test1' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Any declared in .Test1' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null - arg1: CALL 'public final fun (): kotlin.Any declared in .Test1' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .Test1 declared in .Test1.equals' type=.Test1 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1 [val] declared in .Test1.equals' type=.Test1 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' @@ -204,14 +196,14 @@ FILE fqName: fileName:/dataClasses.kt $this: VALUE_PARAMETER name: type:.Test2 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Any? declared in .Test2' - CALL 'public final fun (): kotlin.Any? declared in .Test2' type=kotlin.Any? origin=GET_PROPERTY - $this: GET_VAR ': .Test2 declared in .Test2.component1' type=.Test2 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any? visibility:private [final]' type=kotlin.Any? origin=null + receiver: GET_VAR ': .Test2 declared in .Test2.component1' type=.Test2 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test2, x:kotlin.Any?) returnType:.Test2 $this: VALUE_PARAMETER name: type:.Test2 VALUE_PARAMETER name:x index:0 type:kotlin.Any? EXPRESSION_BODY - CALL 'public final fun (): kotlin.Any? declared in .Test2' type=kotlin.Any? origin=GET_PROPERTY - $this: GET_VAR ': .Test2 declared in .Test2.copy' type=.Test2 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any? visibility:private [final]' type=kotlin.Any? origin=null + receiver: GET_VAR ': .Test2 declared in .Test2.copy' type=.Test2 origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (x: kotlin.Any?): .Test2 declared in .Test2' CONSTRUCTOR_CALL 'public constructor (x: kotlin.Any?) [primary] declared in .Test2' type=.Test2 origin=null @@ -225,33 +217,27 @@ FILE fqName: fileName:/dataClasses.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Test2(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): kotlin.Any? declared in .Test2' type=kotlin.Any? origin=GET_PROPERTY - $this: GET_VAR ': .Test2 declared in .Test2.toString' type=.Test2 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any? visibility:private [final]' type=kotlin.Any? origin=null + receiver: GET_VAR ': .Test2 declared in .Test2.toString' type=.Test2 origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test2) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test2 BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test2.hashCode' type=kotlin.Unit origin=EQ - BLOCK type=kotlin.Int origin=null - VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Any? [val] - CALL 'public final fun (): kotlin.Any? declared in .Test2' type=kotlin.Any? origin=GET_PROPERTY - $this: GET_VAR ': .Test2 declared in .Test2.hashCode' type=.Test2 origin=null - WHEN type=kotlin.Int origin=null - BRANCH - if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ - arg0: GET_VAR 'val tmp1: kotlin.Any? [val] declared in .Test2.hashCode' type=kotlin.Any? origin=null - arg1: CONST Null type=kotlin.Nothing? value=null - then: CONST Int type=kotlin.Int value=0 - BRANCH - if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null - $this: GET_VAR 'val tmp1: kotlin.Any? [val] declared in .Test2.hashCode' type=kotlin.Any? origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test2' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test2.hashCode' type=kotlin.Int origin=null + WHEN type=kotlin.Int origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any? visibility:private [final]' type=kotlin.Any? origin=null + receiver: GET_VAR ': .Test2 declared in .Test2.hashCode' type=.Test2 origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: CONST Int type=kotlin.Int value=0 + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any? visibility:private [final]' type=kotlin.Any? origin=null + receiver: GET_VAR ': .Test2 declared in .Test2.hashCode' type=.Test2 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test2, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -278,10 +264,10 @@ FILE fqName: fileName:/dataClasses.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Any? declared in .Test2' type=kotlin.Any? origin=GET_PROPERTY - $this: GET_VAR ': .Test2 declared in .Test2.equals' type=.Test2 origin=null - arg1: CALL 'public final fun (): kotlin.Any? declared in .Test2' type=kotlin.Any? origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test2 [val] declared in .Test2.equals' type=.Test2 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any? visibility:private [final]' type=kotlin.Any? origin=null + receiver: GET_VAR ': .Test2 declared in .Test2.equals' type=.Test2 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any? visibility:private [final]' type=kotlin.Any? origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test2 [val] declared in .Test2.equals' type=.Test2 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test2' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test2' @@ -344,44 +330,44 @@ FILE fqName: fileName:/dataClasses.kt $this: VALUE_PARAMETER name: type:.Test3 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Double declared in .Test3' - CALL 'public final fun (): kotlin.Double declared in .Test3' type=kotlin.Double origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.component1' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:d type:kotlin.Double visibility:private [final]' type=kotlin.Double origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.component1' type=.Test3 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:.Test3) returnType:kotlin.Double? $this: VALUE_PARAMETER name: type:.Test3 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component2 (): kotlin.Double? declared in .Test3' - CALL 'public final fun (): kotlin.Double? declared in .Test3' type=kotlin.Double? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.component2' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:dn type:kotlin.Double? visibility:private [final]' type=kotlin.Double? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.component2' type=.Test3 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component3 visibility:public modality:FINAL <> ($this:.Test3) returnType:kotlin.Float $this: VALUE_PARAMETER name: type:.Test3 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component3 (): kotlin.Float declared in .Test3' - CALL 'public final fun (): kotlin.Float declared in .Test3' type=kotlin.Float origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.component3' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:f type:kotlin.Float visibility:private [final]' type=kotlin.Float origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.component3' type=.Test3 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component4 visibility:public modality:FINAL <> ($this:.Test3) returnType:kotlin.Float? $this: VALUE_PARAMETER name: type:.Test3 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component4 (): kotlin.Float? declared in .Test3' - CALL 'public final fun (): kotlin.Float? declared in .Test3' type=kotlin.Float? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.component4' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:df type:kotlin.Float? visibility:private [final]' type=kotlin.Float? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.component4' type=.Test3 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test3, d:kotlin.Double, dn:kotlin.Double?, f:kotlin.Float, df:kotlin.Float?) returnType:.Test3 $this: VALUE_PARAMETER name: type:.Test3 VALUE_PARAMETER name:d index:0 type:kotlin.Double EXPRESSION_BODY - CALL 'public final fun (): kotlin.Double declared in .Test3' type=kotlin.Double origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:d type:kotlin.Double visibility:private [final]' type=kotlin.Double origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null VALUE_PARAMETER name:dn index:1 type:kotlin.Double? EXPRESSION_BODY - CALL 'public final fun (): kotlin.Double? declared in .Test3' type=kotlin.Double? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:dn type:kotlin.Double? visibility:private [final]' type=kotlin.Double? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null VALUE_PARAMETER name:f index:2 type:kotlin.Float EXPRESSION_BODY - CALL 'public final fun (): kotlin.Float declared in .Test3' type=kotlin.Float origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:f type:kotlin.Float visibility:private [final]' type=kotlin.Float origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null VALUE_PARAMETER name:df index:3 type:kotlin.Float? EXPRESSION_BODY - CALL 'public final fun (): kotlin.Float? declared in .Test3' type=kotlin.Float? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:df type:kotlin.Float? visibility:private [final]' type=kotlin.Float? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.copy' type=.Test3 origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (d: kotlin.Double, dn: kotlin.Double?, f: kotlin.Float, df: kotlin.Float?): .Test3 declared in .Test3' CONSTRUCTOR_CALL 'public constructor (d: kotlin.Double, dn: kotlin.Double?, f: kotlin.Float, df: kotlin.Float?) [primary] declared in .Test3' type=.Test3 origin=null @@ -398,80 +384,66 @@ FILE fqName: fileName:/dataClasses.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Test3(" CONST String type=kotlin.String value="d=" - CALL 'public final fun (): kotlin.Double declared in .Test3' type=kotlin.Double origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:d type:kotlin.Double visibility:private [final]' type=kotlin.Double origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="dn=" - CALL 'public final fun (): kotlin.Double? declared in .Test3' type=kotlin.Double? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:dn type:kotlin.Double? visibility:private [final]' type=kotlin.Double? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="f=" - CALL 'public final fun (): kotlin.Float declared in .Test3' type=kotlin.Float origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:f type:kotlin.Float visibility:private [final]' type=kotlin.Float origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="df=" - CALL 'public final fun (): kotlin.Float? declared in .Test3' type=kotlin.Float? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:df type:kotlin.Float? visibility:private [final]' type=kotlin.Float? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.toString' type=.Test3 origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test3) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test3 BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Unit origin=EQ - CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Double' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.Double declared in .Test3' type=kotlin.Double origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: BLOCK type=kotlin.Int origin=null - VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Double? [val] - CALL 'public final fun (): kotlin.Double? declared in .Test3' type=kotlin.Double? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null - WHEN type=kotlin.Int origin=null - BRANCH - if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ - arg0: GET_VAR 'val tmp1: kotlin.Double? [val] declared in .Test3.hashCode' type=kotlin.Double? origin=null - arg1: CONST Null type=kotlin.Nothing? value=null - then: CONST Int type=kotlin.Int value=0 - BRANCH - if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Double' type=kotlin.Int origin=null - $this: GET_VAR 'val tmp1: kotlin.Double? [val] declared in .Test3.hashCode' type=kotlin.Double? origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Float' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.Float declared in .Test3' type=kotlin.Float origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Unit origin=EQ - CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Int origin=null - other: CONST Int type=kotlin.Int value=31 - other: BLOCK type=kotlin.Int origin=null - VAR IR_TEMPORARY_VARIABLE name:tmp2 type:kotlin.Float? [val] - CALL 'public final fun (): kotlin.Float? declared in .Test3' type=kotlin.Float? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null - WHEN type=kotlin.Int origin=null - BRANCH - if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ - arg0: GET_VAR 'val tmp2: kotlin.Float? [val] declared in .Test3.hashCode' type=kotlin.Float? origin=null - arg1: CONST Null type=kotlin.Nothing? value=null - then: CONST Int type=kotlin.Int value=0 - BRANCH - if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Float' type=kotlin.Int origin=null - $this: GET_VAR 'val tmp2: kotlin.Float? [val] declared in .Test3.hashCode' type=kotlin.Float? origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test3' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Int origin=null + CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Double' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:d type:kotlin.Double visibility:private [final]' type=kotlin.Double origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null + other: CONST Int type=kotlin.Int value=31 + other: WHEN type=kotlin.Int origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:dn type:kotlin.Double? visibility:private [final]' type=kotlin.Double? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: CONST Int type=kotlin.Int value=0 + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Double' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:dn type:kotlin.Double? visibility:private [final]' type=kotlin.Double? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null + other: CONST Int type=kotlin.Int value=31 + other: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Float' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:f type:kotlin.Float visibility:private [final]' type=kotlin.Float origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null + other: CONST Int type=kotlin.Int value=31 + other: WHEN type=kotlin.Int origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:df type:kotlin.Float? visibility:private [final]' type=kotlin.Float? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: CONST Int type=kotlin.Int value=0 + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Float' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:df type:kotlin.Float? visibility:private [final]' type=kotlin.Float? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.hashCode' type=.Test3 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test3, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -498,40 +470,40 @@ FILE fqName: fileName:/dataClasses.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Double declared in .Test3' type=kotlin.Double origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null - arg1: CALL 'public final fun (): kotlin.Double declared in .Test3' type=kotlin.Double origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:d type:kotlin.Double visibility:private [final]' type=kotlin.Double origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:d type:kotlin.Double visibility:private [final]' type=kotlin.Double origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test3' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Double? declared in .Test3' type=kotlin.Double? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null - arg1: CALL 'public final fun (): kotlin.Double? declared in .Test3' type=kotlin.Double? origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:dn type:kotlin.Double? visibility:private [final]' type=kotlin.Double? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:dn type:kotlin.Double? visibility:private [final]' type=kotlin.Double? origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test3' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Float declared in .Test3' type=kotlin.Float origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null - arg1: CALL 'public final fun (): kotlin.Float declared in .Test3' type=kotlin.Float origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:f type:kotlin.Float visibility:private [final]' type=kotlin.Float origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:f type:kotlin.Float visibility:private [final]' type=kotlin.Float origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test3' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Float? declared in .Test3' type=kotlin.Float? origin=GET_PROPERTY - $this: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null - arg1: CALL 'public final fun (): kotlin.Float? declared in .Test3' type=kotlin.Float? origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:df type:kotlin.Float? visibility:private [final]' type=kotlin.Float? origin=null + receiver: GET_VAR ': .Test3 declared in .Test3.equals' type=.Test3 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:df type:kotlin.Float? visibility:private [final]' type=kotlin.Float? origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test3 [val] declared in .Test3.equals' type=.Test3 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test3' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test3' diff --git a/compiler/testData/ir/irText/classes/dataClassesGeneric.txt b/compiler/testData/ir/irText/classes/dataClassesGeneric.txt index c57622615ea..ee548529b07 100644 --- a/compiler/testData/ir/irText/classes/dataClassesGeneric.txt +++ b/compiler/testData/ir/irText/classes/dataClassesGeneric.txt @@ -22,14 +22,14 @@ FILE fqName: fileName:/dataClassesGeneric.kt $this: VALUE_PARAMETER name: type:.Test1.Test1> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): T of .Test1 declared in .Test1' - CALL 'public final fun (): T of .Test1 declared in .Test1' type=T of .Test1 origin=GET_PROPERTY - $this: GET_VAR ': .Test1.Test1> declared in .Test1.component1' type=.Test1.Test1> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test1 visibility:private [final]' type=T of .Test1 origin=null + receiver: GET_VAR ': .Test1.Test1> declared in .Test1.component1' type=.Test1.Test1> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test1.Test1>, x:T of .Test1) returnType:.Test1.Test1> $this: VALUE_PARAMETER name: type:.Test1.Test1> VALUE_PARAMETER name:x index:0 type:T of .Test1 EXPRESSION_BODY - CALL 'public final fun (): T of .Test1 declared in .Test1' type=T of .Test1 origin=GET_PROPERTY - $this: GET_VAR ': .Test1.Test1> declared in .Test1.copy' type=.Test1.Test1> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test1 visibility:private [final]' type=T of .Test1 origin=null + receiver: GET_VAR ': .Test1.Test1> declared in .Test1.copy' type=.Test1.Test1> origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (x: T of .Test1): .Test1.Test1> declared in .Test1' CONSTRUCTOR_CALL 'public constructor (x: T of .Test1) [primary] declared in .Test1' type=.Test1.Test1> origin=null @@ -44,33 +44,27 @@ FILE fqName: fileName:/dataClassesGeneric.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Test1(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): T of .Test1 declared in .Test1' type=T of .Test1 origin=GET_PROPERTY - $this: GET_VAR ': .Test1.Test1> declared in .Test1.toString' type=.Test1.Test1> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test1 visibility:private [final]' type=T of .Test1 origin=null + receiver: GET_VAR ': .Test1.Test1> declared in .Test1.toString' type=.Test1.Test1> origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test1.Test1>) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test1.Test1> BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Unit origin=EQ - BLOCK type=kotlin.Int origin=null - VAR IR_TEMPORARY_VARIABLE name:tmp1 type:T of .Test1 [val] - CALL 'public final fun (): T of .Test1 declared in .Test1' type=T of .Test1 origin=GET_PROPERTY - $this: GET_VAR ': .Test1.Test1> declared in .Test1.hashCode' type=.Test1.Test1> origin=null - WHEN type=kotlin.Int origin=null - BRANCH - if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ - arg0: GET_VAR 'val tmp1: T of .Test1 [val] declared in .Test1.hashCode' type=T of .Test1 origin=null - arg1: CONST Null type=kotlin.Nothing? value=null - then: CONST Int type=kotlin.Int value=0 - BRANCH - if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null - $this: GET_VAR 'val tmp1: T of .Test1 [val] declared in .Test1.hashCode' type=T of .Test1 origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test1' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test1.hashCode' type=kotlin.Int origin=null + WHEN type=kotlin.Int origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test1 visibility:private [final]' type=T of .Test1 origin=null + receiver: GET_VAR ': .Test1.Test1> declared in .Test1.hashCode' type=.Test1.Test1> origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: CONST Int type=kotlin.Int value=0 + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test1 visibility:private [final]' type=T of .Test1 origin=null + receiver: GET_VAR ': .Test1.Test1> declared in .Test1.hashCode' type=.Test1.Test1> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test1.Test1>, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -97,10 +91,10 @@ FILE fqName: fileName:/dataClassesGeneric.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): T of .Test1 declared in .Test1' type=T of .Test1 origin=GET_PROPERTY - $this: GET_VAR ': .Test1.Test1> declared in .Test1.equals' type=.Test1.Test1> origin=null - arg1: CALL 'public final fun (): T of .Test1 declared in .Test1' type=T of .Test1 origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test1.Test1> [val] declared in .Test1.equals' type=.Test1.Test1> origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test1 visibility:private [final]' type=T of .Test1 origin=null + receiver: GET_VAR ': .Test1.Test1> declared in .Test1.equals' type=.Test1.Test1> origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test1 visibility:private [final]' type=T of .Test1 origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test1.Test1> [val] declared in .Test1.equals' type=.Test1.Test1> origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test1' @@ -128,14 +122,14 @@ FILE fqName: fileName:/dataClassesGeneric.kt $this: VALUE_PARAMETER name: type:.Test2.Test2> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): T of .Test2 declared in .Test2' - CALL 'public final fun (): T of .Test2 declared in .Test2' type=T of .Test2 origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.component1' type=.Test2.Test2> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test2 visibility:private [final]' type=T of .Test2 origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.component1' type=.Test2.Test2> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test2.Test2>, x:T of .Test2) returnType:.Test2.Test2> $this: VALUE_PARAMETER name: type:.Test2.Test2> VALUE_PARAMETER name:x index:0 type:T of .Test2 EXPRESSION_BODY - CALL 'public final fun (): T of .Test2 declared in .Test2' type=T of .Test2 origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.copy' type=.Test2.Test2> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test2 visibility:private [final]' type=T of .Test2 origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.copy' type=.Test2.Test2> origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (x: T of .Test2): .Test2.Test2> declared in .Test2' CONSTRUCTOR_CALL 'public constructor (x: T of .Test2) [primary] declared in .Test2' type=.Test2.Test2> origin=null @@ -150,22 +144,18 @@ FILE fqName: fileName:/dataClassesGeneric.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Test2(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): T of .Test2 declared in .Test2' type=T of .Test2 origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.toString' type=.Test2.Test2> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test2 visibility:private [final]' type=T of .Test2 origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.toString' type=.Test2.Test2> origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test2.Test2>) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test2.Test2> BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test2.hashCode' type=kotlin.Unit origin=EQ - CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null - $this: CALL 'public final fun (): T of .Test2 declared in .Test2' type=T of .Test2 origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.hashCode' type=.Test2.Test2> origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test2' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test2.hashCode' type=kotlin.Int origin=null + CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Number' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test2 visibility:private [final]' type=T of .Test2 origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.hashCode' type=.Test2.Test2> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test2.Test2>, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -192,10 +182,10 @@ FILE fqName: fileName:/dataClassesGeneric.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): T of .Test2 declared in .Test2' type=T of .Test2 origin=GET_PROPERTY - $this: GET_VAR ': .Test2.Test2> declared in .Test2.equals' type=.Test2.Test2> origin=null - arg1: CALL 'public final fun (): T of .Test2 declared in .Test2' type=T of .Test2 origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test2.Test2> [val] declared in .Test2.equals' type=.Test2.Test2> origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test2 visibility:private [final]' type=T of .Test2 origin=null + receiver: GET_VAR ': .Test2.Test2> declared in .Test2.equals' type=.Test2.Test2> origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test2 visibility:private [final]' type=T of .Test2 origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test2.Test2> [val] declared in .Test2.equals' type=.Test2.Test2> origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test2' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test2' @@ -223,14 +213,14 @@ FILE fqName: fileName:/dataClassesGeneric.kt $this: VALUE_PARAMETER name: type:.Test3.Test3> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.collections.List.Test3> declared in .Test3' - CALL 'public final fun (): kotlin.collections.List.Test3> declared in .Test3' type=kotlin.collections.List.Test3> origin=GET_PROPERTY - $this: GET_VAR ': .Test3.Test3> declared in .Test3.component1' type=.Test3.Test3> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List.Test3> visibility:private [final]' type=kotlin.collections.List.Test3> origin=null + receiver: GET_VAR ': .Test3.Test3> declared in .Test3.component1' type=.Test3.Test3> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test3.Test3>, x:kotlin.collections.List.Test3>) returnType:.Test3.Test3> $this: VALUE_PARAMETER name: type:.Test3.Test3> VALUE_PARAMETER name:x index:0 type:kotlin.collections.List.Test3> EXPRESSION_BODY - CALL 'public final fun (): kotlin.collections.List.Test3> declared in .Test3' type=kotlin.collections.List.Test3> origin=GET_PROPERTY - $this: GET_VAR ': .Test3.Test3> declared in .Test3.copy' type=.Test3.Test3> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List.Test3> visibility:private [final]' type=kotlin.collections.List.Test3> origin=null + receiver: GET_VAR ': .Test3.Test3> declared in .Test3.copy' type=.Test3.Test3> origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (x: kotlin.collections.List.Test3>): .Test3.Test3> declared in .Test3' CONSTRUCTOR_CALL 'public constructor (x: kotlin.collections.List.Test3>) [primary] declared in .Test3' type=.Test3.Test3> origin=null @@ -245,22 +235,18 @@ FILE fqName: fileName:/dataClassesGeneric.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Test3(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): kotlin.collections.List.Test3> declared in .Test3' type=kotlin.collections.List.Test3> origin=GET_PROPERTY - $this: GET_VAR ': .Test3.Test3> declared in .Test3.toString' type=.Test3.Test3> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List.Test3> visibility:private [final]' type=kotlin.collections.List.Test3> origin=null + receiver: GET_VAR ': .Test3.Test3> declared in .Test3.toString' type=.Test3.Test3> origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test3.Test3>) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test3.Test3> BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Unit origin=EQ - CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.collections.List' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.collections.List.Test3> declared in .Test3' type=kotlin.collections.List.Test3> origin=GET_PROPERTY - $this: GET_VAR ': .Test3.Test3> declared in .Test3.hashCode' type=.Test3.Test3> origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test3' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test3.hashCode' type=kotlin.Int origin=null + CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.collections.List' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List.Test3> visibility:private [final]' type=kotlin.collections.List.Test3> origin=null + receiver: GET_VAR ': .Test3.Test3> declared in .Test3.hashCode' type=.Test3.Test3> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test3.Test3>, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -287,10 +273,10 @@ FILE fqName: fileName:/dataClassesGeneric.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.collections.List.Test3> declared in .Test3' type=kotlin.collections.List.Test3> origin=GET_PROPERTY - $this: GET_VAR ': .Test3.Test3> declared in .Test3.equals' type=.Test3.Test3> origin=null - arg1: CALL 'public final fun (): kotlin.collections.List.Test3> declared in .Test3' type=kotlin.collections.List.Test3> origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test3.Test3> [val] declared in .Test3.equals' type=.Test3.Test3> origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List.Test3> visibility:private [final]' type=kotlin.collections.List.Test3> origin=null + receiver: GET_VAR ': .Test3.Test3> declared in .Test3.equals' type=.Test3.Test3> origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List.Test3> visibility:private [final]' type=kotlin.collections.List.Test3> origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test3.Test3> [val] declared in .Test3.equals' type=.Test3.Test3> origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test3' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test3' @@ -317,14 +303,14 @@ FILE fqName: fileName:/dataClassesGeneric.kt $this: VALUE_PARAMETER name: type:.Test4 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.collections.List declared in .Test4' - CALL 'public final fun (): kotlin.collections.List declared in .Test4' type=kotlin.collections.List origin=GET_PROPERTY - $this: GET_VAR ': .Test4 declared in .Test4.component1' type=.Test4 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List visibility:private [final]' type=kotlin.collections.List origin=null + receiver: GET_VAR ': .Test4 declared in .Test4.component1' type=.Test4 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test4, x:kotlin.collections.List) returnType:.Test4 $this: VALUE_PARAMETER name: type:.Test4 VALUE_PARAMETER name:x index:0 type:kotlin.collections.List EXPRESSION_BODY - CALL 'public final fun (): kotlin.collections.List declared in .Test4' type=kotlin.collections.List origin=GET_PROPERTY - $this: GET_VAR ': .Test4 declared in .Test4.copy' type=.Test4 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List visibility:private [final]' type=kotlin.collections.List origin=null + receiver: GET_VAR ': .Test4 declared in .Test4.copy' type=.Test4 origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (x: kotlin.collections.List): .Test4 declared in .Test4' CONSTRUCTOR_CALL 'public constructor (x: kotlin.collections.List) [primary] declared in .Test4' type=.Test4 origin=null @@ -338,22 +324,18 @@ FILE fqName: fileName:/dataClassesGeneric.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Test4(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): kotlin.collections.List declared in .Test4' type=kotlin.collections.List origin=GET_PROPERTY - $this: GET_VAR ': .Test4 declared in .Test4.toString' type=.Test4 origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List visibility:private [final]' type=kotlin.collections.List origin=null + receiver: GET_VAR ': .Test4 declared in .Test4.toString' type=.Test4 origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test4) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test4 BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test4.hashCode' type=kotlin.Unit origin=EQ - CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.collections.List' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.collections.List declared in .Test4' type=kotlin.collections.List origin=GET_PROPERTY - $this: GET_VAR ': .Test4 declared in .Test4.hashCode' type=.Test4 origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test4' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test4.hashCode' type=kotlin.Int origin=null + CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.collections.List' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List visibility:private [final]' type=kotlin.collections.List origin=null + receiver: GET_VAR ': .Test4 declared in .Test4.hashCode' type=.Test4 origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test4, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -380,10 +362,10 @@ FILE fqName: fileName:/dataClassesGeneric.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.collections.List declared in .Test4' type=kotlin.collections.List origin=GET_PROPERTY - $this: GET_VAR ': .Test4 declared in .Test4.equals' type=.Test4 origin=null - arg1: CALL 'public final fun (): kotlin.collections.List declared in .Test4' type=kotlin.collections.List origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test4 [val] declared in .Test4.equals' type=.Test4 origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List visibility:private [final]' type=kotlin.collections.List origin=null + receiver: GET_VAR ': .Test4 declared in .Test4.equals' type=.Test4 origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List visibility:private [final]' type=kotlin.collections.List origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test4 [val] declared in .Test4.equals' type=.Test4 origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test4' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test4' diff --git a/compiler/testData/ir/irText/classes/inlineClass.txt b/compiler/testData/ir/irText/classes/inlineClass.txt index 1537c1da9c4..ff91af922cf 100644 --- a/compiler/testData/ir/irText/classes/inlineClass.txt +++ b/compiler/testData/ir/irText/classes/inlineClass.txt @@ -26,22 +26,18 @@ FILE fqName: fileName:/inlineClass.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Test(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): kotlin.Int declared in .Test' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .Test declared in .Test.toString' type=.Test origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .Test declared in .Test.toString' type=.Test origin=null CONST String type=kotlin.String value=")" FUN GENERATED_INLINE_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test.hashCode' type=kotlin.Unit origin=EQ - CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.Int declared in .Test' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .Test declared in .Test.hashCode' type=.Test origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test.hashCode' type=kotlin.Int origin=null + CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .Test declared in .Test.hashCode' type=.Test origin=null FUN GENERATED_INLINE_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -61,10 +57,10 @@ FILE fqName: fileName:/inlineClass.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Int declared in .Test' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .Test declared in .Test.equals' type=.Test origin=null - arg1: CALL 'public final fun (): kotlin.Int declared in .Test' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test [val] declared in .Test.equals' type=.Test origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .Test declared in .Test.equals' type=.Test origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test [val] declared in .Test.equals' type=.Test origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test' diff --git a/compiler/testData/ir/irText/classes/lambdaInDataClassDefaultParameter.txt b/compiler/testData/ir/irText/classes/lambdaInDataClassDefaultParameter.txt index a3e6ce548bb..aca5a9da6d5 100644 --- a/compiler/testData/ir/irText/classes/lambdaInDataClassDefaultParameter.txt +++ b/compiler/testData/ir/irText/classes/lambdaInDataClassDefaultParameter.txt @@ -29,14 +29,14 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt $this: VALUE_PARAMETER name: type:.A BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' - CALL 'public final fun (): @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.component1' type=.A origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + receiver: GET_VAR ': .A declared in .A.component1' type=.A origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.A, runA:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit>) returnType:.A $this: VALUE_PARAMETER name: type:.A VALUE_PARAMETER name:runA index:0 type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> EXPRESSION_BODY - CALL 'public final fun (): @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.copy' type=.A origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + receiver: GET_VAR ': .A declared in .A.copy' type=.A origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (runA: @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit>): .A declared in .A' CONSTRUCTOR_CALL 'public constructor (runA: @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit>) [primary] declared in .A' type=.A origin=null @@ -50,22 +50,18 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="A(" CONST String type=kotlin.String value="runA=" - CALL 'public final fun (): @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.toString' type=.A origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + receiver: GET_VAR ': .A declared in .A.toString' type=.A origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.A) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.A BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .A.hashCode' type=kotlin.Unit origin=EQ - CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Function2' type=kotlin.Int origin=null - $this: CALL 'public final fun (): @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.hashCode' type=.A origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .A' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .A.hashCode' type=kotlin.Int origin=null + CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Function2' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + receiver: GET_VAR ': .A declared in .A.hashCode' type=.A origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.A, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -92,10 +88,10 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.equals' type=.A origin=null - arg1: CALL 'public final fun (): @[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> declared in .A' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .A [val] declared in .A.equals' type=.A origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + receiver: GET_VAR ': .A declared in .A.equals' type=.A origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:runA type:@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> visibility:private [final]' type=@[ExtensionFunctionType] kotlin.Function2<.A, kotlin.String, kotlin.Unit> origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .A [val] declared in .A.equals' type=.A origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .A' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .A' @@ -144,14 +140,14 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt $this: VALUE_PARAMETER name: type:.B BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Any declared in .B' - CALL 'public final fun (): kotlin.Any declared in .B' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .B declared in .B.component1' type=.B origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .B declared in .B.component1' type=.B origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.B, x:kotlin.Any) returnType:.B $this: VALUE_PARAMETER name: type:.B VALUE_PARAMETER name:x index:0 type:kotlin.Any EXPRESSION_BODY - CALL 'public final fun (): kotlin.Any declared in .B' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .B declared in .B.copy' type=.B origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .B declared in .B.copy' type=.B origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (x: kotlin.Any): .B declared in .B' CONSTRUCTOR_CALL 'public constructor (x: kotlin.Any) [primary] declared in .B' type=.B origin=null @@ -165,22 +161,18 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="B(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): kotlin.Any declared in .B' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .B declared in .B.toString' type=.B origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .B declared in .B.toString' type=.B origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.B) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.B BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .B.hashCode' type=kotlin.Unit origin=EQ - CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.Any declared in .B' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .B declared in .B.hashCode' type=.B origin=null RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .B' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .B.hashCode' type=kotlin.Int origin=null + CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .B declared in .B.hashCode' type=.B origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.B, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -207,10 +199,10 @@ FILE fqName: fileName:/lambdaInDataClassDefaultParameter.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Any declared in .B' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR ': .B declared in .B.equals' type=.B origin=null - arg1: CALL 'public final fun (): kotlin.Any declared in .B' type=kotlin.Any origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .B [val] declared in .B.equals' type=.B origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR ': .B declared in .B.equals' type=.B origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .B [val] declared in .B.equals' type=.B origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .B' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .B' diff --git a/compiler/testData/ir/irText/declarations/parameters/dataClassMembers.txt b/compiler/testData/ir/irText/declarations/parameters/dataClassMembers.txt index 67aeb85baea..24c6f357a2a 100644 --- a/compiler/testData/ir/irText/declarations/parameters/dataClassMembers.txt +++ b/compiler/testData/ir/irText/declarations/parameters/dataClassMembers.txt @@ -36,24 +36,24 @@ FILE fqName: fileName:/dataClassMembers.kt $this: VALUE_PARAMETER name: type:.Test.Test> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): T of .Test declared in .Test' - CALL 'public final fun (): T of .Test declared in .Test' type=T of .Test origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.component1' type=.Test.Test> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test visibility:private [final]' type=T of .Test origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.component1' type=.Test.Test> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:.Test.Test>) returnType:kotlin.String $this: VALUE_PARAMETER name: type:.Test.Test> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component2 (): kotlin.String declared in .Test' - CALL 'public final fun (): kotlin.String declared in .Test' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.component2' type=.Test.Test> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.component2' type=.Test.Test> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Test.Test>, x:T of .Test, y:kotlin.String) returnType:.Test.Test> $this: VALUE_PARAMETER name: type:.Test.Test> VALUE_PARAMETER name:x index:0 type:T of .Test EXPRESSION_BODY - CALL 'public final fun (): T of .Test declared in .Test' type=T of .Test origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.copy' type=.Test.Test> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test visibility:private [final]' type=T of .Test origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.copy' type=.Test.Test> origin=null VALUE_PARAMETER name:y index:1 type:kotlin.String EXPRESSION_BODY - CALL 'public final fun (): kotlin.String declared in .Test' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.copy' type=.Test.Test> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.copy' type=.Test.Test> origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (x: T of .Test, y: kotlin.String): .Test.Test> declared in .Test' CONSTRUCTOR_CALL 'public constructor (x: T of .Test, y: kotlin.String) [primary] declared in .Test' type=.Test.Test> origin=null @@ -69,45 +69,37 @@ FILE fqName: fileName:/dataClassMembers.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Test(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): T of .Test declared in .Test' type=T of .Test origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.toString' type=.Test.Test> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test visibility:private [final]' type=T of .Test origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.toString' type=.Test.Test> origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="y=" - CALL 'public final fun (): kotlin.String declared in .Test' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.toString' type=.Test.Test> origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.toString' type=.Test.Test> origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Test.Test>) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.Test.Test> BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test.hashCode' type=kotlin.Unit origin=EQ - BLOCK type=kotlin.Int origin=null - VAR IR_TEMPORARY_VARIABLE name:tmp1 type:T of .Test [val] - CALL 'public final fun (): T of .Test declared in .Test' type=T of .Test origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.hashCode' type=.Test.Test> origin=null - WHEN type=kotlin.Int origin=null - BRANCH - if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ - arg0: GET_VAR 'val tmp1: T of .Test [val] declared in .Test.hashCode' type=T of .Test origin=null - arg1: CONST Null type=kotlin.Nothing? value=null - then: CONST Int type=kotlin.Int value=0 - BRANCH - if: CONST Boolean type=kotlin.Boolean value=true - then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null - $this: GET_VAR 'val tmp1: T of .Test [val] declared in .Test.hashCode' type=T of .Test origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test.hashCode' type=kotlin.Unit origin=EQ + RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test' CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test.hashCode' type=kotlin.Int origin=null + $this: WHEN type=kotlin.Int origin=null + BRANCH + if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test visibility:private [final]' type=T of .Test origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.hashCode' type=.Test.Test> origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: CONST Int type=kotlin.Int value=0 + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test visibility:private [final]' type=T of .Test origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.hashCode' type=.Test.Test> origin=null other: CONST Int type=kotlin.Int value=31 other: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.String declared in .Test' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.hashCode' type=.Test.Test> origin=null - RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Test' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .Test.hashCode' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.hashCode' type=.Test.Test> origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Test.Test>, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -134,20 +126,20 @@ FILE fqName: fileName:/dataClassMembers.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): T of .Test declared in .Test' type=T of .Test origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.equals' type=.Test.Test> origin=null - arg1: CALL 'public final fun (): T of .Test declared in .Test' type=T of .Test origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test.Test> [val] declared in .Test.equals' type=.Test.Test> origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test visibility:private [final]' type=T of .Test origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.equals' type=.Test.Test> origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:T of .Test visibility:private [final]' type=T of .Test origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test.Test> [val] declared in .Test.equals' type=.Test.Test> origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.String declared in .Test' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': .Test.Test> declared in .Test.equals' type=.Test.Test> origin=null - arg1: CALL 'public final fun (): kotlin.String declared in .Test' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .Test.Test> [val] declared in .Test.equals' type=.Test.Test> origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR ': .Test.Test> declared in .Test.equals' type=.Test.Test> origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .Test.Test> [val] declared in .Test.equals' type=.Test.Test> origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Test' diff --git a/compiler/testData/ir/irText/lambdas/destructuringInLambda.txt b/compiler/testData/ir/irText/lambdas/destructuringInLambda.txt index e4a253f7524..cc6d06f7ba2 100644 --- a/compiler/testData/ir/irText/lambdas/destructuringInLambda.txt +++ b/compiler/testData/ir/irText/lambdas/destructuringInLambda.txt @@ -33,24 +33,24 @@ FILE fqName: fileName:/destructuringInLambda.kt $this: VALUE_PARAMETER name: type:.A BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Int declared in .A' - CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.component1' type=.A origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.component1' type=.A origin=null FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:.A) returnType:kotlin.Int $this: VALUE_PARAMETER name: type:.A BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun component2 (): kotlin.Int declared in .A' - CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.component2' type=.A origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.component2' type=.A origin=null FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.A, x:kotlin.Int, y:kotlin.Int) returnType:.A $this: VALUE_PARAMETER name: type:.A VALUE_PARAMETER name:x index:0 type:kotlin.Int EXPRESSION_BODY - CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.copy' type=.A origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.copy' type=.A origin=null VALUE_PARAMETER name:y index:1 type:kotlin.Int EXPRESSION_BODY - CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.copy' type=.A origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.copy' type=.A origin=null BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun copy (x: kotlin.Int, y: kotlin.Int): .A declared in .A' CONSTRUCTOR_CALL 'public constructor (x: kotlin.Int, y: kotlin.Int) [primary] declared in .A' type=.A origin=null @@ -65,34 +65,28 @@ FILE fqName: fileName:/destructuringInLambda.kt STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="A(" CONST String type=kotlin.String value="x=" - CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.toString' type=.A origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.toString' type=.A origin=null CONST String type=kotlin.String value=", " CONST String type=kotlin.String value="y=" - CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.toString' type=.A origin=null + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.toString' type=.A origin=null CONST String type=kotlin.String value=")" FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.A) returnType:kotlin.Int overridden: public open fun hashCode (): kotlin.Int declared in kotlin.Any $this: VALUE_PARAMETER name: type:.A BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - CONST Int type=kotlin.Int value=0 - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .A.hashCode' type=kotlin.Unit origin=EQ - CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.hashCode' type=.A origin=null - SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .A.hashCode' type=kotlin.Unit origin=EQ + RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .A' CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null $this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .A.hashCode' type=kotlin.Int origin=null + $this: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.hashCode' type=.A origin=null other: CONST Int type=kotlin.Int value=31 other: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - $this: CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.hashCode' type=.A origin=null - RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .A' - GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .A.hashCode' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.hashCode' type=.A origin=null FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.A, other:kotlin.Any?) returnType:kotlin.Boolean overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any @@ -119,20 +113,20 @@ FILE fqName: fileName:/destructuringInLambda.kt BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.equals' type=.A origin=null - arg1: CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .A [val] declared in .A.equals' type=.A origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.equals' type=.A origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .A [val] declared in .A.equals' type=.A origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .A' CONST Boolean type=kotlin.Boolean value=false WHEN type=kotlin.Unit origin=null BRANCH if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - arg0: CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': .A declared in .A.equals' type=.A origin=null - arg1: CALL 'public final fun (): kotlin.Int declared in .A' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR 'val tmp0_other_with_cast: .A [val] declared in .A.equals' type=.A origin=null + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.equals' type=.A origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR 'val tmp0_other_with_cast: .A [val] declared in .A.equals' type=.A origin=null then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .A' CONST Boolean type=kotlin.Boolean value=false RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .A' diff --git a/compiler/testData/ir/sourceRanges/declarations/synthesizedDataClassMembers.txt b/compiler/testData/ir/sourceRanges/declarations/synthesizedDataClassMembers.txt index 618c29f1222..233160e8726 100644 --- a/compiler/testData/ir/sourceRanges/declarations/synthesizedDataClassMembers.txt +++ b/compiler/testData/ir/sourceRanges/declarations/synthesizedDataClassMembers.txt @@ -42,33 +42,33 @@ @1:8..18 VALUE_PARAMETER name: type:.C @1:8..18 BLOCK_BODY @1:8..18 RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Int declared in .C' - @1:8..18 CALL 'public final fun (): kotlin.Int declared in .C' type=kotlin.Int origin=GET_PROPERTY + @1:8..18 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null @1:8..18 GET_VAR ': .C declared in .C.component1' type=.C origin=null @2:8..21 FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:.C) returnType:kotlin.String @2:8..21 VALUE_PARAMETER name: type:.C @2:8..21 BLOCK_BODY @2:8..21 RETURN type=kotlin.Nothing from='public final fun component2 (): kotlin.String declared in .C' - @2:8..21 CALL 'public final fun (): kotlin.String declared in .C' type=kotlin.String origin=GET_PROPERTY + @2:8..21 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null @2:8..21 GET_VAR ': .C declared in .C.component2' type=.C origin=null @3:8..18 FUN GENERATED_DATA_CLASS_MEMBER name:component3 visibility:public modality:FINAL <> ($this:.C) returnType:kotlin.Any @3:8..18 VALUE_PARAMETER name: type:.C @3:8..18 BLOCK_BODY @3:8..18 RETURN type=kotlin.Nothing from='public final fun component3 (): kotlin.Any declared in .C' - @3:8..18 CALL 'public final fun (): kotlin.Any declared in .C' type=kotlin.Any origin=GET_PROPERTY + @3:8..18 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null @3:8..18 GET_VAR ': .C declared in .C.component3' type=.C origin=null @0:0..4:1 FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.C, x:kotlin.Int, y:kotlin.String, z:kotlin.Any) returnType:.C @0:0..4:1 VALUE_PARAMETER name: type:.C @1:8..18 VALUE_PARAMETER name:x index:0 type:kotlin.Int @0:0..4:1 EXPRESSION_BODY - @0:0..4:1 CALL 'public final fun (): kotlin.Int declared in .C' type=kotlin.Int origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null @0:0..4:1 GET_VAR ': .C declared in .C.copy' type=.C origin=null @2:8..21 VALUE_PARAMETER name:y index:1 type:kotlin.String @0:0..4:1 EXPRESSION_BODY - @0:0..4:1 CALL 'public final fun (): kotlin.String declared in .C' type=kotlin.String origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null @0:0..4:1 GET_VAR ': .C declared in .C.copy' type=.C origin=null @3:8..18 VALUE_PARAMETER name:z index:2 type:kotlin.Any @0:0..4:1 EXPRESSION_BODY - @0:0..4:1 CALL 'public final fun (): kotlin.Any declared in .C' type=kotlin.Any origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null @0:0..4:1 GET_VAR ': .C declared in .C.copy' type=.C origin=null @0:0..4:1 BLOCK_BODY @0:0..4:1 RETURN type=kotlin.Nothing from='public final fun copy (x: kotlin.Int, y: kotlin.String, z: kotlin.Any): .C declared in .C' @@ -83,44 +83,36 @@ @0:0..4:1 STRING_CONCATENATION type=kotlin.String @0:0..4:1 CONST String type=kotlin.String value="C(" @0:0..4:1 CONST String type=kotlin.String value="x=" - @0:0..4:1 CALL 'public final fun (): kotlin.Int declared in .C' type=kotlin.Int origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null @0:0..4:1 GET_VAR ': .C declared in .C.toString' type=.C origin=null @0:0..4:1 CONST String type=kotlin.String value=", " @0:0..4:1 CONST String type=kotlin.String value="y=" - @0:0..4:1 CALL 'public final fun (): kotlin.String declared in .C' type=kotlin.String origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null @0:0..4:1 GET_VAR ': .C declared in .C.toString' type=.C origin=null @0:0..4:1 CONST String type=kotlin.String value=", " @0:0..4:1 CONST String type=kotlin.String value="z=" - @0:0..4:1 CALL 'public final fun (): kotlin.Any declared in .C' type=kotlin.Any origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null @0:0..4:1 GET_VAR ': .C declared in .C.toString' type=.C origin=null @0:0..4:1 CONST String type=kotlin.String value=")" @0:0..4:1 FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.C) returnType:kotlin.Int @0:0..4:1 VALUE_PARAMETER name: type:.C @0:0..4:1 BLOCK_BODY - @0:0..4:1 VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int [var] - @0:0..4:1 CONST Int type=kotlin.Int value=0 - @0:0..4:1 SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .C.hashCode' type=kotlin.Unit origin=EQ - @0:0..4:1 CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - @0:0..4:1 CALL 'public final fun (): kotlin.Int declared in .C' type=kotlin.Int origin=GET_PROPERTY - @0:0..4:1 GET_VAR ': .C declared in .C.hashCode' type=.C origin=null - @0:0..4:1 SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .C.hashCode' type=kotlin.Unit origin=EQ + @0:0..4:1 RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .C' @0:0..4:1 CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null @0:0..4:1 CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - @0:0..4:1 GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .C.hashCode' type=kotlin.Int origin=null - @0:0..4:1 CONST Int type=kotlin.Int value=31 - @0:0..4:1 CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=null - @0:0..4:1 CALL 'public final fun (): kotlin.String declared in .C' type=kotlin.String origin=GET_PROPERTY - @0:0..4:1 GET_VAR ': .C declared in .C.hashCode' type=.C origin=null - @0:0..4:1 SET_VAR 'var tmp0_result: kotlin.Int [var] declared in .C.hashCode' type=kotlin.Unit origin=EQ - @0:0..4:1 CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - @0:0..4:1 CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null - @0:0..4:1 GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .C.hashCode' type=kotlin.Int origin=null + @0:0..4:1 CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + @0:0..4:1 CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + @0:0..4:1 CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=null + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + @0:0..4:1 GET_VAR ': .C declared in .C.hashCode' type=.C origin=null + @0:0..4:1 CONST Int type=kotlin.Int value=31 + @0:0..4:1 CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=null + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + @0:0..4:1 GET_VAR ': .C declared in .C.hashCode' type=.C origin=null @0:0..4:1 CONST Int type=kotlin.Int value=31 @0:0..4:1 CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null - @0:0..4:1 CALL 'public final fun (): kotlin.Any declared in .C' type=kotlin.Any origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null @0:0..4:1 GET_VAR ': .C declared in .C.hashCode' type=.C origin=null - @0:0..4:1 RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .C' - @0:0..4:1 GET_VAR 'var tmp0_result: kotlin.Int [var] declared in .C.hashCode' type=kotlin.Int origin=null @0:0..4:1 FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.C, other:kotlin.Any?) returnType:kotlin.Boolean @0:0..4:1 VALUE_PARAMETER name: type:.C @0:0..4:1 VALUE_PARAMETER name:other index:0 type:kotlin.Any? @@ -145,9 +137,9 @@ @0:0..4:1 BRANCH @0:0..4:1 CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ @0:0..4:1 CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - @0:0..4:1 CALL 'public final fun (): kotlin.Int declared in .C' type=kotlin.Int origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null @0:0..4:1 GET_VAR ': .C declared in .C.equals' type=.C origin=null - @0:0..4:1 CALL 'public final fun (): kotlin.Int declared in .C' type=kotlin.Int origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null @0:0..4:1 GET_VAR 'val tmp0_other_with_cast: .C [val] declared in .C.equals' type=.C origin=null @0:0..4:1 RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .C' @0:0..4:1 CONST Boolean type=kotlin.Boolean value=false @@ -155,9 +147,9 @@ @0:0..4:1 BRANCH @0:0..4:1 CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ @0:0..4:1 CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - @0:0..4:1 CALL 'public final fun (): kotlin.String declared in .C' type=kotlin.String origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null @0:0..4:1 GET_VAR ': .C declared in .C.equals' type=.C origin=null - @0:0..4:1 CALL 'public final fun (): kotlin.String declared in .C' type=kotlin.String origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:private [final]' type=kotlin.String origin=null @0:0..4:1 GET_VAR 'val tmp0_other_with_cast: .C [val] declared in .C.equals' type=.C origin=null @0:0..4:1 RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .C' @0:0..4:1 CONST Boolean type=kotlin.Boolean value=false @@ -165,9 +157,9 @@ @0:0..4:1 BRANCH @0:0..4:1 CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ @0:0..4:1 CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ - @0:0..4:1 CALL 'public final fun (): kotlin.Any declared in .C' type=kotlin.Any origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null @0:0..4:1 GET_VAR ': .C declared in .C.equals' type=.C origin=null - @0:0..4:1 CALL 'public final fun (): kotlin.Any declared in .C' type=kotlin.Any origin=GET_PROPERTY + @0:0..4:1 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null @0:0..4:1 GET_VAR 'val tmp0_other_with_cast: .C [val] declared in .C.equals' type=.C origin=null @0:0..4:1 RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .C' @0:0..4:1 CONST Boolean type=kotlin.Boolean value=false