diff --git a/compiler/testData/codegen/box/ranges/contains/inDoubleRangeLiteralVsComparableRangeLiteral.kt b/compiler/testData/codegen/box/ranges/contains/inDoubleRangeLiteralVsComparableRangeLiteral.kt new file mode 100644 index 00000000000..824d7ef428f --- /dev/null +++ b/compiler/testData/codegen/box/ranges/contains/inDoubleRangeLiteralVsComparableRangeLiteral.kt @@ -0,0 +1,22 @@ +// IGNORE_BACKEND: JS +// WITH_RUNTIME + +val DOUBLE_RANGE = 0.0 .. -0.0 + +val PZERO = 0.0 as Comparable +val NZERO = -0.0 as Comparable +val COMPARABLE_RANGE = PZERO .. NZERO + +fun box(): String { + if (!(0.0 in DOUBLE_RANGE)) return "fail 1 in Double" + if (0.0 !in DOUBLE_RANGE) return "fail 1 !in Double" + if (!(-0.0 in DOUBLE_RANGE)) return "fail 2 in Double" + if (-0.0 !in DOUBLE_RANGE) return "fail 2 !in Double" + + if (PZERO in COMPARABLE_RANGE) return "fail 3 in Comparable" + if (!(PZERO !in COMPARABLE_RANGE)) return "fail 3 !in Comparable" + if (NZERO in COMPARABLE_RANGE) return "fail 4 in Comparable" + if (!(NZERO !in COMPARABLE_RANGE)) return "fail 4a !in Comparable" + + return "OK" +} \ No newline at end of file diff --git a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index eef3541f467..a733cae6ced 100644 --- a/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-ir-jvm/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -13195,6 +13195,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes doTest(fileName); } + @TestMetadata("inDoubleRangeLiteralVsComparableRangeLiteral.kt") + public void testInDoubleRangeLiteralVsComparableRangeLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/ranges/contains/inDoubleRangeLiteralVsComparableRangeLiteral.kt"); + doTest(fileName); + } + @TestMetadata("inExtensionRange.kt") public void testInExtensionRange() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/ranges/contains/inExtensionRange.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 8b5b29fb986..d93f5c3a714 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -13195,6 +13195,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest(fileName); } + @TestMetadata("inDoubleRangeLiteralVsComparableRangeLiteral.kt") + public void testInDoubleRangeLiteralVsComparableRangeLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/ranges/contains/inDoubleRangeLiteralVsComparableRangeLiteral.kt"); + doTest(fileName); + } + @TestMetadata("inExtensionRange.kt") public void testInExtensionRange() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/ranges/contains/inExtensionRange.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index b58c28eb363..b4eab3af414 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -13195,6 +13195,12 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes doTest(fileName); } + @TestMetadata("inDoubleRangeLiteralVsComparableRangeLiteral.kt") + public void testInDoubleRangeLiteralVsComparableRangeLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/ranges/contains/inDoubleRangeLiteralVsComparableRangeLiteral.kt"); + doTest(fileName); + } + @TestMetadata("inExtensionRange.kt") public void testInExtensionRange() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/ranges/contains/inExtensionRange.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index def85838ba3..9e71e7213d2 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -14809,6 +14809,18 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { throw new AssertionError("Looks like this test can be unmuted. Remove IGNORE_BACKEND directive for that."); } + @TestMetadata("inDoubleRangeLiteralVsComparableRangeLiteral.kt") + public void testInDoubleRangeLiteralVsComparableRangeLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/ranges/contains/inDoubleRangeLiteralVsComparableRangeLiteral.kt"); + try { + doTest(fileName); + } + catch (Throwable ignore) { + return; + } + throw new AssertionError("Looks like this test can be unmuted. Remove IGNORE_BACKEND directive for that."); + } + @TestMetadata("inExtensionRange.kt") public void testInExtensionRange() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/ranges/contains/inExtensionRange.kt");