commit | 7a02d01604918acc47d06c25d5e3f97e71ef83c5 | [log] [tgz] |
---|---|---|
author | vladislav.grechko <vladislav.grechko@gmail.com> | Tue Nov 15 13:23:24 2022 +0100 |
committer | vladislav.grechko <vladislav.grechko@gmail.com> | Tue Nov 15 13:23:24 2022 +0100 |
tree | dac124302a97f7aa94d1eff58ac098fd033fc4d6 | |
parent | 03ace283be91ee261debe80cdf36c2dc540bbeb6 [diff] |
fixup! Improve support of custom equals in inline classes
diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/declarationUtils.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/declarationUtils.kt index e6be431..18d3bb1 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/declarationUtils.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/declarationUtils.kt
@@ -125,7 +125,7 @@ contextReceivers.isEmpty() && receiverTypeRef == null && name == OperatorNameConventions.EQUALS && this@run.isInline && valueParameters.size == 1 - && (returnTypeRef.coneType.isBoolean || returnTypeRef.coneType.isNothing) + && (returnTypeRef.isBoolean || returnTypeRef.isNothing) && valueParameters[0].returnTypeRef.coneType == inlineClassStarProjection } } ?: false
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DataClassMembersGenerator.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DataClassMembersGenerator.kt index 184f3e3..31fb2c3 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DataClassMembersGenerator.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DataClassMembersGenerator.kt
@@ -127,6 +127,7 @@ fun generateEqualsMethodBody(properties: List<IrProperty>) { val irType = irClass.defaultType + val typedEqualsFunction = irClass.functions.singleOrNull { it.descriptor.isTypedEqualsInInlineClass() } if (irClass.isSingleFieldValueClass && typedEqualsFunction != null) { +irIfThenReturnFalse(irNotIs(irOther(), irType))