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