From 0621b79505899ea5ed049186ed89efb565d4370c Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Mon, 27 Sep 2021 19:37:13 +0300 Subject: [PATCH] Add test for KT-46225 --- .../codegen/FirBlackBoxCodegenTestGenerated.java | 6 ++++++ .../box/defaultArguments/captureInTailrec.kt | 15 +++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 6 ++++++ .../codegen/IrBlackBoxCodegenTestGenerated.java | 6 ++++++ .../codegen/LightAnalysisModeTestGenerated.java | 5 +++++ .../semantics/IrJsCodegenBoxES6TestGenerated.java | 5 +++++ .../ir/semantics/IrJsCodegenBoxTestGenerated.java | 5 +++++ .../test/semantics/JsCodegenBoxTestGenerated.java | 5 +++++ .../semantics/IrCodegenBoxWasmTestGenerated.java | 5 +++++ 9 files changed, 58 insertions(+) create mode 100644 compiler/testData/codegen/box/defaultArguments/captureInTailrec.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 303f7e0e165..1848e233cc6 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 @@ -12952,6 +12952,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/defaultArguments/callDefaultFromInitializer.kt"); } + @Test + @TestMetadata("captureInTailrec.kt") + public void testCaptureInTailrec() throws Exception { + runTest("compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt"); + } + @Test @TestMetadata("complexInheritance.kt") public void testComplexInheritance() throws Exception { diff --git a/compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt b/compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt new file mode 100644 index 00000000000..5722b6896f6 --- /dev/null +++ b/compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt @@ -0,0 +1,15 @@ +// IGNORE_BACKEND: JS_IR +// IGNORE_BACKEND: WASM + +// KT-46225 + +class C + +fun box(): String = + C().foo("O") + +tailrec fun C.foo(x: String, f: (String) -> String = { bar(it) }): String = + if (x.length < 2) foo(f(x)) else x + +fun C.bar(s: String): String = + s + "K" \ 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 cba50d98651..f2f9861eea8 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 @@ -12874,6 +12874,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/defaultArguments/callDefaultFromInitializer.kt"); } + @Test + @TestMetadata("captureInTailrec.kt") + public void testCaptureInTailrec() throws Exception { + runTest("compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt"); + } + @Test @TestMetadata("complexInheritance.kt") public void testComplexInheritance() 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 2992e8ec848..71853f948a1 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 @@ -12952,6 +12952,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/defaultArguments/callDefaultFromInitializer.kt"); } + @Test + @TestMetadata("captureInTailrec.kt") + public void testCaptureInTailrec() throws Exception { + runTest("compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt"); + } + @Test @TestMetadata("complexInheritance.kt") public void testComplexInheritance() 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 10f55dbf006..ce8574c5384 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -10433,6 +10433,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/defaultArguments/callDefaultFromInitializer.kt"); } + @TestMetadata("captureInTailrec.kt") + public void testCaptureInTailrec() throws Exception { + runTest("compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt"); + } + @TestMetadata("complexInheritance.kt") public void testComplexInheritance() throws Exception { runTest("compiler/testData/codegen/box/defaultArguments/complexInheritance.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 2e7a3ee518a..ae6ca505d09 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 @@ -9267,6 +9267,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/defaultArguments/callDefaultFromInitializer.kt"); } + @TestMetadata("captureInTailrec.kt") + public void testCaptureInTailrec() throws Exception { + runTest("compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt"); + } + @TestMetadata("complexInheritance.kt") public void testComplexInheritance() throws Exception { runTest("compiler/testData/codegen/box/defaultArguments/complexInheritance.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 ee09cfd3632..2b215cb66ef 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 @@ -8673,6 +8673,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/defaultArguments/callDefaultFromInitializer.kt"); } + @TestMetadata("captureInTailrec.kt") + public void testCaptureInTailrec() throws Exception { + runTest("compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt"); + } + @TestMetadata("complexInheritance.kt") public void testComplexInheritance() throws Exception { runTest("compiler/testData/codegen/box/defaultArguments/complexInheritance.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 7f5b4aff3d7..d21ab5c929a 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 @@ -8638,6 +8638,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/defaultArguments/callDefaultFromInitializer.kt"); } + @TestMetadata("captureInTailrec.kt") + public void testCaptureInTailrec() throws Exception { + runTest("compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt"); + } + @TestMetadata("complexInheritance.kt") public void testComplexInheritance() throws Exception { runTest("compiler/testData/codegen/box/defaultArguments/complexInheritance.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 3d3d6920833..8d54c700ef9 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 @@ -5154,6 +5154,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/defaultArguments/callDefaultFromInitializer.kt"); } + @TestMetadata("captureInTailrec.kt") + public void testCaptureInTailrec() throws Exception { + runTest("compiler/testData/codegen/box/defaultArguments/captureInTailrec.kt"); + } + @TestMetadata("complexInheritance.kt") public void testComplexInheritance() throws Exception { runTest("compiler/testData/codegen/box/defaultArguments/complexInheritance.kt");