From 38f21b7139800c95f5b1885ab05c0f6e3a2b54d7 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Fri, 1 Oct 2021 17:03:38 +0300 Subject: [PATCH] [JS IR] Add test to check proper type substitution --- .../FirBlackBoxCodegenTestGenerated.java | 6 +++ .../testData/codegen/box/ir/lambdaWithLoop.kt | 50 +++++++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 6 +++ .../IrBlackBoxCodegenTestGenerated.java | 6 +++ .../LightAnalysisModeTestGenerated.java | 5 ++ .../IrJsCodegenBoxES6TestGenerated.java | 5 ++ .../IrJsCodegenBoxTestGenerated.java | 5 ++ .../semantics/JsCodegenBoxTestGenerated.java | 5 ++ .../IrCodegenBoxWasmTestGenerated.java | 5 ++ 9 files changed, 93 insertions(+) create mode 100644 compiler/testData/codegen/box/ir/lambdaWithLoop.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index 0a01a68f379..303f7e0e165 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -22936,6 +22936,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/ir/kt41765.kt"); } + @Test + @TestMetadata("lambdaWithLoop.kt") + public void testLambdaWithLoop() throws Exception { + runTest("compiler/testData/codegen/box/ir/lambdaWithLoop.kt"); + } + @Test @TestMetadata("objectClass.kt") public void testObjectClass() throws Exception { diff --git a/compiler/testData/codegen/box/ir/lambdaWithLoop.kt b/compiler/testData/codegen/box/ir/lambdaWithLoop.kt new file mode 100644 index 00000000000..ff2d564d379 --- /dev/null +++ b/compiler/testData/codegen/box/ir/lambdaWithLoop.kt @@ -0,0 +1,50 @@ +// WITH_RUNTIME + +fun fooInt(b: (Int, Int) -> String): String { + return b(3, 5) +} + +fun fooULong(b: (ULong, ULong) -> String): String { + return b(3UL, 7UL) +} + +fun barInt(i: Int): String { + return "FAIINTL1".get(i).toString() +} + +fun barULong(l: ULong): String { + return "FAIULONGL2".get(l.toInt()).toString() +} + +fun testInt(): String { + return fooInt { from, to -> + var r = "" + for (index in from..to) { + r += barInt(index) + } + r + } +} + +fun testULong(): String { + return fooULong { from, to -> + var r = "" + for (index in from..to) { + r += barULong(index) + } + r + } +} + +fun box(): String { + + val r1 = testInt() + + if (r1 != "INT") return "FAIL1: $r1" + + val r2 = testULong() + + if (r2 != "ULONG") return "FAIL2: $r2" + + return "OK" +} \ No newline at end of file diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index 000da7d2e36..cba50d98651 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -22804,6 +22804,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/ir/kt41765.kt"); } + @Test + @TestMetadata("lambdaWithLoop.kt") + public void testLambdaWithLoop() throws Exception { + runTest("compiler/testData/codegen/box/ir/lambdaWithLoop.kt"); + } + @Test @TestMetadata("objectClass.kt") public void testObjectClass() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 759abc5fa59..2992e8ec848 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -22936,6 +22936,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/ir/kt41765.kt"); } + @Test + @TestMetadata("lambdaWithLoop.kt") + public void testLambdaWithLoop() throws Exception { + runTest("compiler/testData/codegen/box/ir/lambdaWithLoop.kt"); + } + @Test @TestMetadata("objectClass.kt") public void testObjectClass() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 1c1f6ed4609..10f55dbf006 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -19109,6 +19109,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/ir/kt41765.kt"); } + @TestMetadata("lambdaWithLoop.kt") + public void testLambdaWithLoop() throws Exception { + runTest("compiler/testData/codegen/box/ir/lambdaWithLoop.kt"); + } + @TestMetadata("objectClass.kt") public void testObjectClass() throws Exception { runTest("compiler/testData/codegen/box/ir/objectClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index a64fb3b9672..2e7a3ee518a 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -16183,6 +16183,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/ir/kt41765.kt"); } + @TestMetadata("lambdaWithLoop.kt") + public void testLambdaWithLoop() throws Exception { + runTest("compiler/testData/codegen/box/ir/lambdaWithLoop.kt"); + } + @TestMetadata("objectClass.kt") public void testObjectClass() throws Exception { runTest("compiler/testData/codegen/box/ir/objectClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 8eee15c8b28..ee09cfd3632 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -15589,6 +15589,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/ir/kt41765.kt"); } + @TestMetadata("lambdaWithLoop.kt") + public void testLambdaWithLoop() throws Exception { + runTest("compiler/testData/codegen/box/ir/lambdaWithLoop.kt"); + } + @TestMetadata("objectClass.kt") public void testObjectClass() throws Exception { runTest("compiler/testData/codegen/box/ir/objectClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index af04a71fb4d..7f5b4aff3d7 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -15619,6 +15619,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/ir/kt41765.kt"); } + @TestMetadata("lambdaWithLoop.kt") + public void testLambdaWithLoop() throws Exception { + runTest("compiler/testData/codegen/box/ir/lambdaWithLoop.kt"); + } + @TestMetadata("objectClass.kt") public void testObjectClass() throws Exception { runTest("compiler/testData/codegen/box/ir/objectClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 71d73cb521d..3d3d6920833 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -10688,6 +10688,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/ir/kt41765.kt"); } + @TestMetadata("lambdaWithLoop.kt") + public void testLambdaWithLoop() throws Exception { + runTest("compiler/testData/codegen/box/ir/lambdaWithLoop.kt"); + } + @TestMetadata("objectClass.kt") public void testObjectClass() throws Exception { runTest("compiler/testData/codegen/box/ir/objectClass.kt");