diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmMultiFieldValueClassLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmMultiFieldValueClassLowering.kt index 19b255dbb76..a2dfb5bcbb7 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmMultiFieldValueClassLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmMultiFieldValueClassLowering.kt @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.backend.jvm.lower +import org.jetbrains.kotlin.backend.common.lower.MethodsFromAnyGeneratorForLowerings.Companion.isEquals +import org.jetbrains.kotlin.backend.common.lower.MethodsFromAnyGeneratorForLowerings.Companion.isToString import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.lower.irCatch import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase @@ -784,6 +786,7 @@ private class JvmMultiFieldValueClassLowering(context: JvmBackendContext) : JvmV }.unwrapBlock() } if (expression.isSpecializedMFVCEqEq) { + val backendContext = context return context.createIrBuilder(getCurrentScopeSymbol()).irBlock { val leftArgument = expression.getValueArgument(0)!! val rightArgument = expression.getValueArgument(1)!! @@ -792,35 +795,23 @@ private class JvmMultiFieldValueClassLowering(context: JvmBackendContext) : JvmV val rightClass = rightArgument.type.erasedUpperBound val rightNode = if (rightArgument.type.needsMfvcFlattening()) replacements.getRootMfvcNodeOrNull(rightClass) else null if (leftNode != null) { - if (rightNode != null) { + val newEquals = if (rightNode != null) { + require(leftNode == rightNode) { "Different nodes: $leftNode, $rightNode" } // both are unboxed - val leftExpressions = flattenExpression(leftArgument) - require((leftExpressions.size > 1) == leftArgument.type.needsMfvcFlattening()) { - "Illegal flattening of ${leftArgument.dump()}\n\n${leftExpressions.joinToString("\n") { it.dump() }}" - } - val rightExpressions = flattenExpression(rightArgument) - require((rightExpressions.size > 1) == rightArgument.type.needsMfvcFlattening()) { - "Illegal flattening of ${rightArgument.dump()}\n\n${rightExpressions.joinToString("\n") { it.dump() }}" - } - require(leftNode == rightNode) { "Different node: $leftNode, $rightNode" } - require(leftClass == rightClass) { "Equals for different classes: $leftClass and $rightClass called" } - - +irCall(leftNode.specializedEqualsMethod).apply { - ((leftArgument.type as IrSimpleType).arguments + (rightArgument.type as IrSimpleType).arguments).forEachIndexed { index, argument -> - putTypeArgument(index, argument.typeOrNull) - } - val arguments = leftExpressions + rightExpressions - arguments.forEachIndexed { index, argument -> putValueArgument(index, argument) } - } + leftNode.specializedEqualsMethod } else { // left one is unboxed, right is not - val equals = leftClass.functions.single { it.isEquals() } - +irCall(equals).apply { - copyTypeArgumentsFrom(expression) - dispatchReceiver = leftArgument - putValueArgument(0, rightArgument) - }.transform(this@JvmMultiFieldValueClassLowering, null) + leftClass.functions.single { it.isEquals(backendContext) } } + +irCall(newEquals).apply { + if (rightNode != null) { + for ((index, typeArgument) in (rightArgument.type as IrSimpleType).arguments.withIndex()) { + putTypeArgument(index, typeArgument.typeOrNull) + } + } + dispatchReceiver = leftArgument + putValueArgument(0, rightArgument) + }.transform(this@JvmMultiFieldValueClassLowering, null) } else if (rightNode != null) { // left one is boxed, right one is unboxed if (leftArgument.isNullConst()) { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MfvcNode.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MfvcNode.kt index 2af2d73dff2..ed6651d025d 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MfvcNode.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MfvcNode.kt @@ -420,8 +420,8 @@ class RootMfvcNode internal constructor( boxMethod.typeParameters.size, primaryConstructorImpl.typeParameters.size, ) - require(specializedEqualsMethod.typeParameters.size == 2 * mfvc.typeParameters.size) { - "Specialized equals method must contain twice more type parameters than corresponding MFVC ${mfvc.typeParameters.map { it.defaultType.render() }} but has ${specializedEqualsMethod.typeParameters.map { it.defaultType.render() }}" + require(specializedEqualsMethod.typeParameters.size == mfvc.typeParameters.size) { + "Specialized equals method must contain the same number of type parameters as the corresponding MFVC ${mfvc.typeParameters.map { it.defaultType.render() }} but has ${specializedEqualsMethod.typeParameters.map { it.defaultType.render() }}" } requireSameSizes(oldPrimaryConstructor.valueParameters.size, subnodes.size) requireSameSizes( @@ -430,8 +430,8 @@ class RootMfvcNode internal constructor( primaryConstructorImpl.valueParameters.size, boxMethod.valueParameters.size, ) - require(specializedEqualsMethod.valueParameters.size == 2 * leavesCount) { - "Specialized equals method must contain twice more value parameters than corresponding primary constructor of the MFVC ${mfvc.typeParameters.map { it.defaultType.render() }} but has ${specializedEqualsMethod.typeParameters.map { it.defaultType.render() }}" + require(specializedEqualsMethod.valueParameters.size == 1) { + "Specialized equals method must contain single value parameter but has\n${specializedEqualsMethod.valueParameters.joinToString("\n") { it.dump() }}" } for (function in listOf(oldPrimaryConstructor, newPrimaryConstructor, primaryConstructorImpl, boxMethod, specializedEqualsMethod)) { require(function.extensionReceiverParameter == null) { "Extension receiver is not expected for ${function.render()}" } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MfvcNodeFactory.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MfvcNodeFactory.kt index 4a5504b52fe..dde9e136569 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MfvcNodeFactory.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/MfvcNodeFactory.kt @@ -30,7 +30,6 @@ import org.jetbrains.kotlin.ir.types.defaultType import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.resolve.InlineClassDescriptorResolver fun createLeafMfvcNode( parent: IrDeclarationContainer, @@ -258,6 +257,7 @@ private fun IrProperty.isStatic(currentContainer: IrDeclarationContainer) = fun getRootNode(context: JvmBackendContext, mfvc: IrClass): RootMfvcNode { require(mfvc.isMultiFieldValueClass) { "${mfvc.defaultType.render()} does not require flattening" } val oldPrimaryConstructor = mfvc.primaryConstructor!! + val oldFields = mfvc.fields.filter { !it.isStatic }.toList() val representation = mfvc.multiFieldValueClassRepresentation!! val properties = collectPropertiesAfterLowering(mfvc).associateBy { it.isStatic(mfvc) to it.name } @@ -270,7 +270,7 @@ fun getRootNode(context: JvmBackendContext, mfvc: IrClass): RootMfvcNode { val newPrimaryConstructor = makeMfvcPrimaryConstructor(context, oldPrimaryConstructor, mfvc, leaves, fields) val primaryConstructorImpl = makePrimaryConstructorImpl(context, oldPrimaryConstructor, mfvc, leaves) val boxMethod = makeBoxMethod(context, mfvc, leaves, newPrimaryConstructor) - val specializedEqualsMethod = makeSpecializedEqualsMethod(context, mfvc, leaves) + val specializedEqualsMethod = makeSpecializedEqualsMethod(context, mfvc, oldFields) return RootMfvcNode( mfvc, subnodes, oldPrimaryConstructor, newPrimaryConstructor, primaryConstructorImpl, boxMethod, specializedEqualsMethod @@ -278,50 +278,28 @@ fun getRootNode(context: JvmBackendContext, mfvc: IrClass): RootMfvcNode { } private fun makeSpecializedEqualsMethod( - context: JvmBackendContext, - mfvc: IrClass, - leaves: List + context: JvmBackendContext, mfvc: IrClass, oldFields: List ) = context.irFactory.buildFun { - name = InlineClassDescriptorResolver.SPECIALIZED_EQUALS_NAME + name = Name.identifier("equals") // TODO: Revisit this once we allow user defined equals methods in value classes. - origin = JvmLoweredDeclarationOrigin.MULTI_FIELD_VALUE_CLASS_GENERATED_IMPL_METHOD + origin = IrDeclarationOrigin.GENERATED_MULTI_FIELD_VALUE_CLASS_MEMBER returnType = context.irBuiltIns.booleanType }.apply { parent = mfvc copyTypeParametersFrom(mfvc) - val typeParametersHalf1 = typeParameters.apply { - for (it in this) { - it.name = Name.guessByFirstCharacter("${it.name.asString()}1") - } - } + createDispatchReceiverParameter() - copyTypeParametersFrom(mfvc) - val typeParametersHalf2 = typeParameters.drop(typeParametersHalf1.size).apply { - for (it in this) { - it.name = Name.guessByFirstCharacter("${it.name.asString()}2") - } - } + val functionTypeParameters = typeParameters - val valueParametersHalf1 = leaves.map { leaf -> - addValueParameter { - this.name = Name.guessByFirstCharacter( - "${InlineClassDescriptorResolver.SPECIALIZED_EQUALS_FIRST_PARAMETER_NAME}$${leaf.fullFieldName}" - ) - this.type = leaf.type.substitute(mfvc.typeParameters, typeParametersHalf1.map { it.defaultType }) - } - } - - val valueParametersHalf2 = leaves.map { leaf -> - addValueParameter { - this.name = Name.guessByFirstCharacter( - "${InlineClassDescriptorResolver.SPECIALIZED_EQUALS_SECOND_PARAMETER_NAME}$${leaf.fullFieldName}" - ) - this.type = leaf.type.substitute(mfvc.typeParameters, typeParametersHalf2.map { it.defaultType }) - } + val other = addValueParameter { + name = Name.identifier("other") + type = mfvc.defaultType.substitute(mfvc.typeParameters, functionTypeParameters.map { it.defaultType }) } body = with(context.createJvmIrBuilder(this.symbol)) { - val conjunctions = valueParametersHalf1.zip(valueParametersHalf2) { f1, f2 -> irEquals(irGet(f1), irGet(f2)) } + val leftArgs = oldFields.map { irGetField(irGet(dispatchReceiverParameter!!), it) } + val rightArgs = oldFields.map { irGetField(irGet(other), it) } + val conjunctions = leftArgs.zip(rightArgs) { l, r -> irEquals(l, r) } irExprBody(conjunctions.reduce { acc, current -> irCall(context.irBuiltIns.andandSymbol).apply { putValueArgument(0, acc) diff --git a/compiler/testData/codegen/box/valueClasses/classFlattening.txt b/compiler/testData/codegen/box/valueClasses/classFlattening.txt index 1c2e57cb34f..630aa332ec4 100644 --- a/compiler/testData/codegen/box/valueClasses/classFlattening.txt +++ b/compiler/testData/codegen/box/valueClasses/classFlattening.txt @@ -84,7 +84,7 @@ public final class GreaterMfvc { public final static method constructor-impl(p0: int, p1: int, @org.jetbrains.annotations.NotNull p2: java.lang.String, p3: int, p4: int, p5: int, @org.jetbrains.annotations.NotNull p6: java.lang.String): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: int, p6: java.lang.String, p7: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String, p10: int, p11: int, p12: int, p13: java.lang.String): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String, p10: int, p11: int, p12: int, p13: java.lang.String): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: int, p6: java.lang.String): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -155,7 +155,7 @@ public final class SimpleMfvc { public final static method constructor-impl(p0: int, p1: int, @org.jetbrains.annotations.NotNull p2: java.lang.String): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.String, p3: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: java.lang.String): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: java.lang.String): boolean public final static @org.jetbrains.annotations.NotNull method getA3-sUp7gFk(p0: int, p1: int, @org.jetbrains.annotations.NotNull p2: java.lang.String, p3: int, p4: int, @org.jetbrains.annotations.NotNull p5: java.lang.String): SimpleMfvc public final static @org.jetbrains.annotations.NotNull method getB1-sUp7gFk(p0: int, p1: int, @org.jetbrains.annotations.NotNull p2: java.lang.String): SimpleMfvc public final static @org.jetbrains.annotations.NotNull method getB2-sUp7gFk(p0: int, p1: int, @org.jetbrains.annotations.NotNull p2: java.lang.String): SimpleMfvc diff --git a/compiler/testData/codegen/box/valueClasses/complex.txt b/compiler/testData/codegen/box/valueClasses/complex.txt index f8dd2747630..99aea261a8a 100644 --- a/compiler/testData/codegen/box/valueClasses/complex.txt +++ b/compiler/testData/codegen/box/valueClasses/complex.txt @@ -117,7 +117,7 @@ public final class C { public final static method constructor-impl(p0: int, p1: int, @org.jetbrains.annotations.NotNull p2: java.lang.String): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.String, p3: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: java.lang.String): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: java.lang.String): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int, p2: java.lang.String): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -160,7 +160,7 @@ public final class D { public final static @org.jetbrains.annotations.NotNull method constructor-impl(p0: int, p1: int, p2: int): D public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.String, p3: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: java.lang.String): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: java.lang.String): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int, p2: java.lang.String): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -183,7 +183,7 @@ public final class E { public final static method constructor-impl(p0: int, p1: int, @org.jetbrains.annotations.NotNull p2: java.lang.String): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.String, p3: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: java.lang.String): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: java.lang.String, p3: int, p4: int, p5: java.lang.String): boolean public final static @org.jetbrains.annotations.NotNull method getWithNonTrivialSetters-impl(p0: int, p1: int, @org.jetbrains.annotations.NotNull p2: java.lang.String): D public method hashCode(): int public static method hashCode-impl(p0: int, p1: int, p2: java.lang.String): int @@ -290,7 +290,7 @@ public final class R { public final static method constructor-impl(p0: int, p1: int, p2: int, p3: int, @org.jetbrains.annotations.NotNull p4: java.lang.String, @org.jetbrains.annotations.NotNull p5: java.util.List): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: int, p3: int, p4: java.lang.String, p5: java.util.List, p6: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int, p4: java.lang.String, p5: java.util.List, p6: int, p7: int, p8: int, p9: int, p10: java.lang.String, p11: java.util.List): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int, p4: java.lang.String, p5: java.util.List, p6: int, p7: int, p8: int, p9: int, p10: java.lang.String, p11: java.util.List): boolean public @org.jetbrains.annotations.NotNull method getFakeOverrideMFVC(): R public static @org.jetbrains.annotations.NotNull method getFakeOverrideMFVC-impl(p0: int, p1: int, p2: int, p3: int, @org.jetbrains.annotations.NotNull p4: java.lang.String, @org.jetbrains.annotations.NotNull p5: java.util.List): R public method getFakeOverrideRegular(): int diff --git a/compiler/testData/codegen/box/valueClasses/conditionalExpressions.txt b/compiler/testData/codegen/box/valueClasses/conditionalExpressions.txt index 9fc5090a38b..884dedd7b0c 100644 --- a/compiler/testData/codegen/box/valueClasses/conditionalExpressions.txt +++ b/compiler/testData/codegen/box/valueClasses/conditionalExpressions.txt @@ -36,7 +36,7 @@ public final class DPoint { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public final static method getCounter(): int public method hashCode(): int public static method hashCode-impl(p0: double, p1: double): int diff --git a/compiler/testData/codegen/box/valueClasses/defaultParameters.txt b/compiler/testData/codegen/box/valueClasses/defaultParameters.txt index 58bbe083dcb..e61eaeaf985 100644 --- a/compiler/testData/codegen/box/valueClasses/defaultParameters.txt +++ b/compiler/testData/codegen/box/valueClasses/defaultParameters.txt @@ -9,7 +9,7 @@ public final class DPoint { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public synthetic static method f1-lIoT8es$default(p0: double, p1: double, p2: int, p3: int, p4: double, p5: double, p6: int, p7: java.lang.Object): java.util.List public final static @org.jetbrains.annotations.NotNull method f1-lIoT8es(p0: double, p1: double, p2: int, p3: int, p4: double, p5: double): java.util.List public final method getX(): double @@ -36,7 +36,7 @@ public final class DSegment { public final static method constructor-impl(p0: double, p1: double, p2: double, p3: double, p4: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: double, p3: double, p4: int, p5: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double, p4: int, p5: double, p6: double, p7: double, p8: double, p9: int): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double, p4: int, p5: double, p6: double, p7: double, p8: double, p9: int): boolean public synthetic static method f2-lIoT8es$default(p0: double, p1: double, p2: double, p3: double, p4: int, p5: int, p6: int, p7: double, p8: double, p9: int, p10: java.lang.Object): java.util.List public final static @org.jetbrains.annotations.NotNull method f2-lIoT8es(p0: double, p1: double, p2: double, p3: double, p4: int, p5: int, p6: int, p7: double, p8: double): java.util.List public final method getN(): int diff --git a/compiler/testData/codegen/box/valueClasses/equality.txt b/compiler/testData/codegen/box/valueClasses/equality.txt index 9cab488617f..6f1597af109 100644 --- a/compiler/testData/codegen/box/valueClasses/equality.txt +++ b/compiler/testData/codegen/box/valueClasses/equality.txt @@ -17,7 +17,7 @@ public final class A { public final static method constructor-impl(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, @org.jetbrains.annotations.NotNull p6: java.lang.String, p7: int, p8: int, @org.jetbrains.annotations.NotNull p9: java.lang.String): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String, p10: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String, p10: int, p11: int, p12: int, p13: int, p14: int, p15: int, p16: java.lang.String, p17: int, p18: int, p19: java.lang.String): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String, p10: int, p11: int, p12: int, p13: int, p14: int, p15: int, p16: java.lang.String, p17: int, p18: int, p19: java.lang.String): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -64,7 +64,7 @@ public final class B { public final static method constructor-impl(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, @org.jetbrains.annotations.NotNull p6: java.lang.String, p7: int, p8: int, @org.jetbrains.annotations.NotNull p9: java.lang.String, p10: int, p11: int, p12: int, p13: int, p14: int, p15: int, @org.jetbrains.annotations.NotNull p16: java.lang.String, p17: int, p18: int, @org.jetbrains.annotations.NotNull p19: java.lang.String): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String, p10: int, p11: int, p12: int, p13: int, p14: int, p15: int, p16: java.lang.String, p17: int, p18: int, p19: java.lang.String, p20: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String, p10: int, p11: int, p12: int, p13: int, p14: int, p15: int, p16: java.lang.String, p17: int, p18: int, p19: java.lang.String, p20: int, p21: int, p22: int, p23: int, p24: int, p25: int, p26: java.lang.String, p27: int, p28: int, p29: java.lang.String, p30: int, p31: int, p32: int, p33: int, p34: int, p35: int, p36: java.lang.String, p37: int, p38: int, p39: java.lang.String): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String, p10: int, p11: int, p12: int, p13: int, p14: int, p15: int, p16: java.lang.String, p17: int, p18: int, p19: java.lang.String, p20: int, p21: int, p22: int, p23: int, p24: int, p25: int, p26: java.lang.String, p27: int, p28: int, p29: java.lang.String, p30: int, p31: int, p32: int, p33: int, p34: int, p35: int, p36: java.lang.String, p37: int, p38: int, p39: java.lang.String): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int, p2: int, p3: int, p4: int, p5: int, p6: java.lang.String, p7: int, p8: int, p9: java.lang.String, p10: int, p11: int, p12: int, p13: int, p14: int, p15: int, p16: java.lang.String, p17: int, p18: int, p19: java.lang.String): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -150,7 +150,7 @@ public final class F3 { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String diff --git a/compiler/testData/codegen/box/valueClasses/functionReferences.txt b/compiler/testData/codegen/box/valueClasses/functionReferences.txt index 4164c07eaec..b6389195e2a 100644 --- a/compiler/testData/codegen/box/valueClasses/functionReferences.txt +++ b/compiler/testData/codegen/box/valueClasses/functionReferences.txt @@ -21,7 +21,7 @@ public final class DPoint { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public final static method f-impl(p0: double, p1: double, p2: double): double public method hashCode(): int public static method hashCode-impl(p0: double, p1: double): int diff --git a/compiler/testData/codegen/box/valueClasses/mfvcFieldInitializationOrder.txt b/compiler/testData/codegen/box/valueClasses/mfvcFieldInitializationOrder.txt index fe8f71ee204..6434bdd22f3 100644 --- a/compiler/testData/codegen/box/valueClasses/mfvcFieldInitializationOrder.txt +++ b/compiler/testData/codegen/box/valueClasses/mfvcFieldInitializationOrder.txt @@ -43,7 +43,7 @@ public final class DPoint { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public method hashCode(): int public static method hashCode-impl(p0: double, p1: double): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String diff --git a/compiler/testData/codegen/box/valueClasses/overrides.txt b/compiler/testData/codegen/box/valueClasses/overrides.txt index 2cba3ebcf09..f078377e5a3 100644 --- a/compiler/testData/codegen/box/valueClasses/overrides.txt +++ b/compiler/testData/codegen/box/valueClasses/overrides.txt @@ -23,7 +23,7 @@ public final class DPoint { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public @org.jetbrains.annotations.NotNull method getX(): java.lang.Double public synthetic bridge method getX(): java.lang.Object public @org.jetbrains.annotations.NotNull method getY(): java.lang.Double @@ -47,7 +47,7 @@ public final class DPointWithInterface { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public @org.jetbrains.annotations.NotNull method getSomethingGeneric(): DPoint public synthetic bridge method getSomethingGeneric(): java.lang.Object public static @org.jetbrains.annotations.NotNull method getSomethingGeneric-impl(p0: double, p1: double): DPoint @@ -83,7 +83,7 @@ public final class DSegment { public final static method constructor-impl(p0: double, p1: double, p2: double, p3: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: double, p3: double, p4: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double, p4: double, p5: double, p6: double, p7: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double, p4: double, p5: double, p6: double, p7: double): boolean public @org.jetbrains.annotations.NotNull method getP1(): DPoint public synthetic bridge method getP1(): java.lang.Object public @org.jetbrains.annotations.NotNull method getP2(): DPoint @@ -140,7 +140,7 @@ public final class GenericFakeOverrideMFVC { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public @org.jetbrains.annotations.NotNull method getP(): DPoint public synthetic bridge method getP(): java.lang.Object public static @org.jetbrains.annotations.NotNull method getP-impl(p0: double, p1: double): DPoint @@ -173,7 +173,7 @@ public final class GenericFakeOverrideMFVCWithMFVCUpperBound { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public @org.jetbrains.annotations.NotNull method getP(): DPoint public static @org.jetbrains.annotations.NotNull method getP-impl(p0: double, p1: double): DPoint public @org.jetbrains.annotations.NotNull method getP1(): DPoint @@ -2498,7 +2498,7 @@ public final class ReifiedFakeOverrideMFVC { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public @org.jetbrains.annotations.NotNull method getP(): DPoint public static @org.jetbrains.annotations.NotNull method getP-impl(p0: double, p1: double): DPoint public @org.jetbrains.annotations.NotNull method getP1(): DPoint diff --git a/compiler/testData/codegen/box/valueClasses/overrides_inlineClass.txt b/compiler/testData/codegen/box/valueClasses/overrides_inlineClass.txt index 697dc295fb2..6db4459600c 100644 --- a/compiler/testData/codegen/box/valueClasses/overrides_inlineClass.txt +++ b/compiler/testData/codegen/box/valueClasses/overrides_inlineClass.txt @@ -23,7 +23,7 @@ public final class DPoint { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public synthetic bridge method getX(): java.lang.Object public method getX-3cLST_U(): double public synthetic bridge method getY(): java.lang.Object @@ -47,7 +47,7 @@ public final class DPointWithInterface { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public @org.jetbrains.annotations.NotNull method getSomethingGeneric(): DPoint public synthetic bridge method getSomethingGeneric(): java.lang.Object public static @org.jetbrains.annotations.NotNull method getSomethingGeneric-impl(p0: double, p1: double): DPoint @@ -83,7 +83,7 @@ public final class DSegment { public final static method constructor-impl(p0: double, p1: double, p2: double, p3: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: double, p3: double, p4: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double, p4: double, p5: double, p6: double, p7: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double, p4: double, p5: double, p6: double, p7: double): boolean public @org.jetbrains.annotations.NotNull method getP1(): DPoint public synthetic bridge method getP1(): java.lang.Object public @org.jetbrains.annotations.NotNull method getP2(): DPoint @@ -140,7 +140,7 @@ public final class GenericFakeOverrideMFVC { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public @org.jetbrains.annotations.NotNull method getP(): DPoint public synthetic bridge method getP(): java.lang.Object public static @org.jetbrains.annotations.NotNull method getP-impl(p0: double, p1: double): DPoint @@ -173,7 +173,7 @@ public final class GenericFakeOverrideMFVCWithMFVCUpperBound { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public @org.jetbrains.annotations.NotNull method getP(): DPoint public static @org.jetbrains.annotations.NotNull method getP-impl(p0: double, p1: double): DPoint public @org.jetbrains.annotations.NotNull method getP1(): DPoint @@ -2515,7 +2515,7 @@ public final class ReifiedFakeOverrideMFVC { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public @org.jetbrains.annotations.NotNull method getP(): DPoint public static @org.jetbrains.annotations.NotNull method getP-impl(p0: double, p1: double): DPoint public @org.jetbrains.annotations.NotNull method getP1(): DPoint diff --git a/compiler/testData/codegen/box/valueClasses/overrides_typeParameters.txt b/compiler/testData/codegen/box/valueClasses/overrides_typeParameters.txt index de1c92111f2..5d02bf98d3b 100644 --- a/compiler/testData/codegen/box/valueClasses/overrides_typeParameters.txt +++ b/compiler/testData/codegen/box/valueClasses/overrides_typeParameters.txt @@ -52,7 +52,7 @@ public final class GenericFakeOverrideMFVC { public final static method constructor-impl(p0: java.lang.Object, p1: java.lang.Object): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean + public final static method equals-sUp7gFk(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean public @org.jetbrains.annotations.NotNull method getP(): XPoint public synthetic bridge method getP(): java.lang.Object public static @org.jetbrains.annotations.NotNull method getP-impl(p0: java.lang.Object, p1: java.lang.Object): XPoint @@ -85,7 +85,7 @@ public final class GenericFakeOverrideMFVCWithMFVCUpperBound { public final static method constructor-impl(p0: java.lang.Object, p1: java.lang.Object): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean + public final static method equals-sUp7gFk(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean public @org.jetbrains.annotations.NotNull method getP(): XPoint public static @org.jetbrains.annotations.NotNull method getP-impl(p0: java.lang.Object, p1: java.lang.Object): XPoint public @org.jetbrains.annotations.NotNull method getP1(): XPoint @@ -2412,7 +2412,7 @@ public final class ReifiedFakeOverrideMFVC { public final static method constructor-impl(p0: java.lang.Object, p1: java.lang.Object): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean + public final static method equals-sUp7gFk(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean public @org.jetbrains.annotations.NotNull method getP(): XPoint public static @org.jetbrains.annotations.NotNull method getP-impl(p0: java.lang.Object, p1: java.lang.Object): XPoint public @org.jetbrains.annotations.NotNull method getP1(): XPoint @@ -2526,7 +2526,7 @@ public final class XPoint { public final static method constructor-impl(p0: java.lang.Object, p1: java.lang.Object): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean + public final static method equals-sUp7gFk(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean public method getX(): java.lang.Object public method getY(): java.lang.Object public method hashCode(): int @@ -2552,7 +2552,7 @@ public final class XPointWithInterface { public final static method constructor-impl(p0: java.lang.Object, p1: java.lang.Object): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean + public final static method equals-sUp7gFk(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): boolean public @org.jetbrains.annotations.NotNull method getSomethingGeneric(): XPoint public synthetic bridge method getSomethingGeneric(): java.lang.Object public static @org.jetbrains.annotations.NotNull method getSomethingGeneric-impl(p0: java.lang.Object, p1: java.lang.Object): XPoint @@ -2588,7 +2588,7 @@ public final class XSegment { public final static method constructor-impl(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object, p4: java.lang.Object): boolean - public final static method equals-impl0(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object, p4: java.lang.Object, p5: java.lang.Object, p6: java.lang.Object, p7: java.lang.Object): boolean + public final static method equals-sUp7gFk(p0: java.lang.Object, p1: java.lang.Object, p2: java.lang.Object, p3: java.lang.Object, p4: java.lang.Object, p5: java.lang.Object, p6: java.lang.Object, p7: java.lang.Object): boolean public @org.jetbrains.annotations.NotNull method getP1(): XPoint public synthetic bridge method getP1(): java.lang.Object public @org.jetbrains.annotations.NotNull method getP2(): XPoint diff --git a/compiler/testData/codegen/box/valueClasses/throwingMFVCReassignments.txt b/compiler/testData/codegen/box/valueClasses/throwingMFVCReassignments.txt index a644d185f32..64b8113daa8 100644 --- a/compiler/testData/codegen/box/valueClasses/throwingMFVCReassignments.txt +++ b/compiler/testData/codegen/box/valueClasses/throwingMFVCReassignments.txt @@ -9,7 +9,7 @@ public final class DPoint { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public method hashCode(): int public static method hashCode-impl(p0: double, p1: double): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String diff --git a/compiler/testData/codegen/box/valueClasses/tryExpressions.txt b/compiler/testData/codegen/box/valueClasses/tryExpressions.txt index eb2ecb04ed3..3200828bbda 100644 --- a/compiler/testData/codegen/box/valueClasses/tryExpressions.txt +++ b/compiler/testData/codegen/box/valueClasses/tryExpressions.txt @@ -9,7 +9,7 @@ public final class DPoint { public final static method constructor-impl(p0: double, p1: double): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: double, p1: double, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: double, p1: double, p2: double, p3: double): boolean + public final static method equals-sUp7gFk(p0: double, p1: double, p2: double, p3: double): boolean public method hashCode(): int public static method hashCode-impl(p0: double, p1: double): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String diff --git a/compiler/testData/codegen/box/valueClasses/visibility.txt b/compiler/testData/codegen/box/valueClasses/visibility.txt index 8189433e5f7..4d3f2a88458 100644 --- a/compiler/testData/codegen/box/valueClasses/visibility.txt +++ b/compiler/testData/codegen/box/valueClasses/visibility.txt @@ -39,7 +39,7 @@ public final class Internal { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public final static @org.jetbrains.annotations.NotNull method getT(): Internal public final static method getX(): int public final static method getY(): int @@ -64,7 +64,7 @@ public final class InternalInternal { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -85,7 +85,7 @@ public final class InternalPrivate { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -106,7 +106,7 @@ public final class InternalPublic { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -127,7 +127,7 @@ public final class Private { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -147,7 +147,7 @@ public final class PrivateInternal { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -168,7 +168,7 @@ public final class PrivatePrivate { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -189,7 +189,7 @@ public final class PrivatePublic { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -237,7 +237,7 @@ public final class Public { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -258,7 +258,7 @@ public final class PublicInternal { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -279,7 +279,7 @@ public final class PublicPrivate { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String @@ -300,7 +300,7 @@ public final class PublicPublic { public final static method constructor-impl(p0: int, p1: int): void public method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean public static method equals-impl(p0: int, p1: int, p2: java.lang.Object): boolean - public final static method equals-impl0(p0: int, p1: int, p2: int, p3: int): boolean + public final static method equals-sUp7gFk(p0: int, p1: int, p2: int, p3: int): boolean public method hashCode(): int public static method hashCode-impl(p0: int, p1: int): int public @org.jetbrains.annotations.NotNull method toString(): java.lang.String diff --git a/compiler/testData/codegen/bytecodeText/valueClasses/equalsBoxTest.kt b/compiler/testData/codegen/bytecodeText/valueClasses/equalsBoxTest.kt index 8f361db4277..c5f5e510e0b 100644 --- a/compiler/testData/codegen/bytecodeText/valueClasses/equalsBoxTest.kt +++ b/compiler/testData/codegen/bytecodeText/valueClasses/equalsBoxTest.kt @@ -54,7 +54,7 @@ fun equalsChecks12(left: DPoint, right: DPoint) { require(111, left == right.toDPointOrNull()) } -// 1 BIPUSH 100\n {4}DLOAD 0\n {4}DLOAD 2\n {4}DLOAD 4\n {4}DLOAD 6\n {4}INVOKESTATIC .*equals-impl0.*\n {4}INVOKESTATIC .*require +// 1 BIPUSH 100\n {4}DLOAD 0\n {4}DLOAD 2\n {4}DLOAD 4\n {4}DLOAD 6\n {4}INVOKESTATIC .*equals-sUp7gFk.*\n {4}INVOKESTATIC .*require // 1 BIPUSH 101\n {4}DLOAD 0\n {4}DLOAD 2\n {4}.*toObject.*\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*box-impl.*\n {4}INVOKESTATIC .*Intrinsics.areEqual.*\n {4}INVOKESTATIC .*require // 1 BIPUSH 102\n {4}DLOAD 0\n {4}DLOAD 2\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*toObject.*\n {4}INVOKESTATIC .*equals-impl .*\n {4}INVOKESTATIC .*require // 1 BIPUSH 103\n {4}DLOAD 0\n {4}DLOAD 2\n {4}.*toObject.*\n {4}DLOAD 4\n {4}DLOAD 6\n {4}.*toObject.*\n {4}INVOKESTATIC .*Intrinsics.areEqual.*\n {4}INVOKESTATIC .*require diff --git a/compiler/testData/codegen/bytecodeText/valueClasses/mfvcDeclaration.kt b/compiler/testData/codegen/bytecodeText/valueClasses/mfvcDeclaration.kt index 8d975ca3f7b..129a19b09d5 100644 --- a/compiler/testData/codegen/bytecodeText/valueClasses/mfvcDeclaration.kt +++ b/compiler/testData/codegen/bytecodeText/valueClasses/mfvcDeclaration.kt @@ -45,7 +45,7 @@ fun functionWithoutBoxes(x: D, y: D) { // 2 INVOKESTATIC C.hashCode-impl \(IILjava/lang/String;\)I // 1 INVOKESTATIC D.hashCode-impl \(IILjava/lang/String;\)I // 2 public static equals-impl\(IILjava/lang/String;Ljava/lang/Object;\)Z -// 2 public final static equals-impl0\(IILjava/lang/String;IILjava/lang/String;\)Z +// 2 public final static equals-sUp7gFk\(IILjava/lang/String;IILjava/lang/String;\)Z // 1 public final static constructor-impl\(III\)LD; // 2 public final static constructor-impl\(IILjava/lang/String;\)V // 2 INVOKESTATIC D.constructor-impl \(IILjava/lang/String;\)V