From b5a23e3ef7f41d3aa97c5e9396940262492c9656 Mon Sep 17 00:00:00 2001 From: "vladislav.grechko" Date: Thu, 13 Oct 2022 18:54:34 +0200 Subject: [PATCH] Minor: improve usability of tests for custom equals in inline classes --- .../inlineClassEqualsConsistency.kt | 8 ++-- .../inlineClassEqualsOverride.kt | 41 ++++++++++++++++--- .../inlineClassUntypedEqualsOverriden.kt | 6 ++- 3 files changed, 45 insertions(+), 10 deletions(-) diff --git a/compiler/testData/codegen/box/inlineClasses/inlineClassEqualsConsistency.kt b/compiler/testData/codegen/box/inlineClasses/inlineClassEqualsConsistency.kt index 0e707411ef3..45860edab99 100644 --- a/compiler/testData/codegen/box/inlineClasses/inlineClassEqualsConsistency.kt +++ b/compiler/testData/codegen/box/inlineClasses/inlineClassEqualsConsistency.kt @@ -38,10 +38,10 @@ fun box(): String { val b2Untyped: Any = b2Typed val c2Untyped: Any = c2Typed - if ((a1Typed == b1Typed) != (a1Untyped == b1Untyped)) throw AssertionError() - if ((a1Typed == c1Typed) != (a1Untyped == c1Untyped)) throw AssertionError() - if ((a2Typed == b2Typed) != (a2Untyped == b2Untyped)) throw AssertionError() - if ((a2Typed == c2Typed) != (a2Untyped == c2Untyped)) throw AssertionError() + if ((a1Typed == b1Typed) != (a1Untyped == b1Untyped)) return "Fail 1" + if ((a1Typed == c1Typed) != (a1Untyped == c1Untyped)) return "Fail 2" + if ((a2Typed == b2Typed) != (a2Untyped == b2Untyped)) return "Fail 3" + if ((a2Typed == c2Typed) != (a2Untyped == c2Untyped)) return "Fail 4" return "OK" } \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/inlineClassEqualsOverride.kt b/compiler/testData/codegen/box/inlineClasses/inlineClassEqualsOverride.kt index 8cffe7e482b..3185efbd92f 100644 --- a/compiler/testData/codegen/box/inlineClasses/inlineClassEqualsOverride.kt +++ b/compiler/testData/codegen/box/inlineClasses/inlineClassEqualsOverride.kt @@ -33,8 +33,39 @@ value class IC4(val value: Int) { override fun equals(other: Any?) = TODO() } -fun box() = - if (IC1(1.0) == IC1(1.05) && IC1(1.0) != IC1(1.2) - && IC2(5) == IC2(6) && IC2(5) != IC2(7) - && IC3(5) == IC3(5) && IC3(5) != IC3(6) - && IC1(1.0) != Any()) "OK" else "Fail" \ No newline at end of file +fun box() = when { + IC1(1.0) != IC1(1.05) -> "Fail 1.1" + (IC1(1.0) as Any) != IC1(1.05) -> "Fail 1.2" + IC1(1.0) != (IC1(1.05) as Any) -> "Fail 1.3" + (IC1(1.0) as Any) != (IC1(1.05) as Any) -> "Fail 1.4" + + IC1(1.0) == IC1(1.2) -> "Fail 2.1" + (IC1(1.0) as Any) == IC1(1.2) -> "Fail 2.2" + IC1(1.0) == (IC1(1.2) as Any) -> "Fail 2.3" + (IC1(1.0) as Any) == (IC1(1.2) as Any) -> "Fail 2.4" + + IC2(5) != IC2(6) -> "Fail 3.1" + (IC2(5) as Any) != IC2(6) -> "Fail 3.2" + IC2(5) != (IC2(6) as Any) -> "Fail 3.3" + (IC2(5) as Any) != (IC2(6) as Any) -> "Fail 3.4" + + IC2(5) == IC2(7) -> "Fail 4.1" + (IC2(5) as Any) == IC2(7) -> "Fail 4.2" + IC2(5) == (IC2(7) as Any) -> "Fail 4.3" + (IC2(5) as Any) == (IC2(7) as Any) -> "Fail 4.4" + + IC3(5) != IC3(5) -> "Fail 5.1" + (IC3(5) as Any) != IC3(5) -> "Fail 5.2" + IC3(5) != (IC3(5) as Any) -> "Fail 5.3" + (IC3(5) as Any) != (IC3(5) as Any) -> "Fail 5.4" + + IC3(5) == IC3(6) -> "Fail 6.1" + (IC3(5) as Any) == IC3(6) -> "Fail 6.2" + IC3(5) == (IC3(6) as Any) -> "Fail 6.3" + (IC3(5) as Any) == (IC3(6) as Any) -> "Fail 6.4" + + IC1(1.0) == Any() -> "Fail 7.1" + (IC1(1.0) as Any) == Any() -> "Fail 7.2" + + else -> "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/inlineClassUntypedEqualsOverriden.kt b/compiler/testData/codegen/box/inlineClasses/inlineClassUntypedEqualsOverriden.kt index dc509cb2958..270a5e8b35f 100644 --- a/compiler/testData/codegen/box/inlineClasses/inlineClassUntypedEqualsOverriden.kt +++ b/compiler/testData/codegen/box/inlineClasses/inlineClassUntypedEqualsOverriden.kt @@ -19,5 +19,9 @@ value class IC(val x: Int) { fun box(): String { val set = setOf(IC(1), IC(2), IC(5)) - return if (set.size == 2 && IC(1) == IC(1) && IC(1) == IC(2) && IC(1) != IC(5)) "OK" else "Fail" + if (set.size != 2) return "Fail 1" + if (IC(1) != IC(1)) return "Fail 2" + if (IC(1) != IC(2)) return "Fail 3" + if (IC(1) == IC(5)) return "Fail 4" + return "OK" } \ No newline at end of file