From 71be3bcec539acd7f08ea8133ac416a27f7ab58b Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 6 Dec 2013 11:08:29 +0400 Subject: [PATCH] All tests for TCO moved to box (with diagnostics marked up) --- .../tailRecursion/extensionTailCall.kt | 10 ++ .../tailRecursion}/functionWithNoTails.kt | 5 + .../functionWithNonTailRecursions.kt | 9 +- .../functionWithoutAnnotation.kt | 6 + .../tailRecursion/infixRecursiveCall.kt | 11 ++ .../tailRecursion}/recursiveCallInLambda.kt | 7 +- .../recursiveCallInLocalFunction.kt | 5 + .../tailRecursion/returnInParentheses.kt | 9 ++ .../tailCallInBlockInParentheses.kt | 11 ++ .../tailRecursion/tailCallInParentheses.kt | 9 ++ .../tailRecursion/tailRecursionInFinally.kt | 15 +++ .../tests/tailCalls/extensionTailCall.kt | 4 - .../tests/tailCalls/infixRecursiveCall.kt | 4 - .../tests/tailCalls/returnInParentheses.kt | 3 - .../tailCalls/tailCallInBlockInParentheses.kt | 6 - .../tests/tailCalls/tailCallInParentheses.kt | 3 - .../tests/tailCalls/tailRecursionInFinally.kt | 9 -- .../checkers/JetDiagnosticsTestGenerated.java | 121 ++++++++---------- .../BlackBoxCodegenTestGenerated.java | 55 ++++++++ 19 files changed, 205 insertions(+), 97 deletions(-) create mode 100644 compiler/testData/codegen/box/functions/tailRecursion/extensionTailCall.kt rename compiler/testData/{diagnostics/tests/tailCalls => codegen/box/functions/tailRecursion}/functionWithNoTails.kt (59%) rename compiler/testData/{diagnostics/tests/tailCalls => codegen/box/functions/tailRecursion}/functionWithNonTailRecursions.kt (68%) rename compiler/testData/{diagnostics/tests/tailCalls => codegen/box/functions/tailRecursion}/functionWithoutAnnotation.kt (52%) create mode 100644 compiler/testData/codegen/box/functions/tailRecursion/infixRecursiveCall.kt rename compiler/testData/{diagnostics/tests/tailCalls => codegen/box/functions/tailRecursion}/recursiveCallInLambda.kt (69%) rename compiler/testData/{diagnostics/tests/tailCalls => codegen/box/functions/tailRecursion}/recursiveCallInLocalFunction.kt (70%) create mode 100644 compiler/testData/codegen/box/functions/tailRecursion/returnInParentheses.kt create mode 100644 compiler/testData/codegen/box/functions/tailRecursion/tailCallInBlockInParentheses.kt create mode 100644 compiler/testData/codegen/box/functions/tailRecursion/tailCallInParentheses.kt create mode 100644 compiler/testData/codegen/box/functions/tailRecursion/tailRecursionInFinally.kt delete mode 100644 compiler/testData/diagnostics/tests/tailCalls/extensionTailCall.kt delete mode 100644 compiler/testData/diagnostics/tests/tailCalls/infixRecursiveCall.kt delete mode 100644 compiler/testData/diagnostics/tests/tailCalls/returnInParentheses.kt delete mode 100644 compiler/testData/diagnostics/tests/tailCalls/tailCallInBlockInParentheses.kt delete mode 100644 compiler/testData/diagnostics/tests/tailCalls/tailCallInParentheses.kt delete mode 100644 compiler/testData/diagnostics/tests/tailCalls/tailRecursionInFinally.kt diff --git a/compiler/testData/codegen/box/functions/tailRecursion/extensionTailCall.kt b/compiler/testData/codegen/box/functions/tailRecursion/extensionTailCall.kt new file mode 100644 index 00000000000..d19d8560b56 --- /dev/null +++ b/compiler/testData/codegen/box/functions/tailRecursion/extensionTailCall.kt @@ -0,0 +1,10 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +tailRecursive fun Int.foo(x: Int) { + if (x == 0) return + return 1.foo(x - 1) +} + +fun box(): String { + 1.foo(1000000) + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/functionWithNoTails.kt b/compiler/testData/codegen/box/functions/tailRecursion/functionWithNoTails.kt similarity index 59% rename from compiler/testData/diagnostics/tests/tailCalls/functionWithNoTails.kt rename to compiler/testData/codegen/box/functions/tailRecursion/functionWithNoTails.kt index b9252e9ace5..014b945fa6c 100644 --- a/compiler/testData/diagnostics/tests/tailCalls/functionWithNoTails.kt +++ b/compiler/testData/codegen/box/functions/tailRecursion/functionWithNoTails.kt @@ -1,3 +1,8 @@ tailRecursive fun noTails() { // nothing here +} + +fun box(): String { + noTails() + return "OK" } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/functionWithNonTailRecursions.kt b/compiler/testData/codegen/box/functions/tailRecursion/functionWithNonTailRecursions.kt similarity index 68% rename from compiler/testData/diagnostics/tests/tailCalls/functionWithNonTailRecursions.kt rename to compiler/testData/codegen/box/functions/tailRecursion/functionWithNonTailRecursions.kt index 664feb3001a..18b9445f14f 100644 --- a/compiler/testData/diagnostics/tests/tailCalls/functionWithNonTailRecursions.kt +++ b/compiler/testData/codegen/box/functions/tailRecursion/functionWithNonTailRecursions.kt @@ -1,12 +1,17 @@ tailRecursive fun badTails(x : Int) : Int { - if (x > 0) { + if (x < 50 && x != 10 && x > 0) { return 1 + badTails(x - 1) } else if (x == 10) { [suppress("NON_TAIL_RECURSIVE_CALL")] return 1 + badTails(x - 1) - } else if (x == 50) { + } else if (x >= 50) { return badTails(x - 1) } return 0 +} + +fun box(): String { + badTails(1000000) + return "OK" } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/functionWithoutAnnotation.kt b/compiler/testData/codegen/box/functions/tailRecursion/functionWithoutAnnotation.kt similarity index 52% rename from compiler/testData/diagnostics/tests/tailCalls/functionWithoutAnnotation.kt rename to compiler/testData/codegen/box/functions/tailRecursion/functionWithoutAnnotation.kt index be3e538dc6d..5bc754515e2 100644 --- a/compiler/testData/diagnostics/tests/tailCalls/functionWithoutAnnotation.kt +++ b/compiler/testData/codegen/box/functions/tailRecursion/functionWithoutAnnotation.kt @@ -3,4 +3,10 @@ fun withoutAnnotation(x : Int) : Int { return 1 + withoutAnnotation(x - 1) } return 0 +} + +fun box(): String { + val r = withoutAnnotation(10) + if (r == 10) return "OK" + return "Fail $r" } \ No newline at end of file diff --git a/compiler/testData/codegen/box/functions/tailRecursion/infixRecursiveCall.kt b/compiler/testData/codegen/box/functions/tailRecursion/infixRecursiveCall.kt new file mode 100644 index 00000000000..d58b2cca341 --- /dev/null +++ b/compiler/testData/codegen/box/functions/tailRecursion/infixRecursiveCall.kt @@ -0,0 +1,11 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +tailRecursive fun Int.foo(x: Int) { + if (x == 0) return + val xx = x - 1 + return 1 foo xx +} + +fun box(): String { + 1 foo 1000000 + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/recursiveCallInLambda.kt b/compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLambda.kt similarity index 69% rename from compiler/testData/diagnostics/tests/tailCalls/recursiveCallInLambda.kt rename to compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLambda.kt index 929910effb9..422062e7ad1 100644 --- a/compiler/testData/diagnostics/tests/tailCalls/recursiveCallInLambda.kt +++ b/compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLambda.kt @@ -5,4 +5,9 @@ } } -fun run(a: Any) {} \ No newline at end of file +fun run(a: Any) {} + +fun box(): String { + foo() + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/recursiveCallInLocalFunction.kt b/compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLocalFunction.kt similarity index 70% rename from compiler/testData/diagnostics/tests/tailCalls/recursiveCallInLocalFunction.kt rename to compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLocalFunction.kt index b8ced88f0c3..46ed4271d49 100644 --- a/compiler/testData/diagnostics/tests/tailCalls/recursiveCallInLocalFunction.kt +++ b/compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLocalFunction.kt @@ -2,4 +2,9 @@ fun bar() { foo() } +} + +fun box(): String { + foo() + return "OK" } \ No newline at end of file diff --git a/compiler/testData/codegen/box/functions/tailRecursion/returnInParentheses.kt b/compiler/testData/codegen/box/functions/tailRecursion/returnInParentheses.kt new file mode 100644 index 00000000000..cfe2cb42c29 --- /dev/null +++ b/compiler/testData/codegen/box/functions/tailRecursion/returnInParentheses.kt @@ -0,0 +1,9 @@ +tailRecursive fun foo(x: Int) { + if (x == 0) return + (return foo(x - 1)) +} + +fun box(): String { + foo(1000000) + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/functions/tailRecursion/tailCallInBlockInParentheses.kt b/compiler/testData/codegen/box/functions/tailRecursion/tailCallInBlockInParentheses.kt new file mode 100644 index 00000000000..2e27bbba44e --- /dev/null +++ b/compiler/testData/codegen/box/functions/tailRecursion/tailCallInBlockInParentheses.kt @@ -0,0 +1,11 @@ +tailRecursive fun foo(x: Int) { + return if (x > 0) { + (foo(x - 1)) + } + else Unit.VALUE +} + +fun box(): String { + foo(1000000) + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/functions/tailRecursion/tailCallInParentheses.kt b/compiler/testData/codegen/box/functions/tailRecursion/tailCallInParentheses.kt new file mode 100644 index 00000000000..fba563157f5 --- /dev/null +++ b/compiler/testData/codegen/box/functions/tailRecursion/tailCallInParentheses.kt @@ -0,0 +1,9 @@ +tailRecursive fun foo(x: Int) { + if (x == 0) return + return (foo(x - 1)) +} + +fun box(): String { + foo(1000000) + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/functions/tailRecursion/tailRecursionInFinally.kt b/compiler/testData/codegen/box/functions/tailRecursion/tailRecursionInFinally.kt new file mode 100644 index 00000000000..d6bff3784c0 --- /dev/null +++ b/compiler/testData/codegen/box/functions/tailRecursion/tailRecursionInFinally.kt @@ -0,0 +1,15 @@ +tailRecursive fun test(go: Boolean) : Unit { + if (!go) return + try { + test(false) + } catch (any : Exception) { + test(false) + } finally { + test(false) + } +} + +fun box(): String { + test(true) + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/extensionTailCall.kt b/compiler/testData/diagnostics/tests/tailCalls/extensionTailCall.kt deleted file mode 100644 index e15e51e06c0..00000000000 --- a/compiler/testData/diagnostics/tests/tailCalls/extensionTailCall.kt +++ /dev/null @@ -1,4 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -tailRecursive fun Int.foo(x: Int) { - return 1.foo(2) -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/infixRecursiveCall.kt b/compiler/testData/diagnostics/tests/tailCalls/infixRecursiveCall.kt deleted file mode 100644 index 9bc8b071873..00000000000 --- a/compiler/testData/diagnostics/tests/tailCalls/infixRecursiveCall.kt +++ /dev/null @@ -1,4 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -tailRecursive fun Int.foo(x: Int) { - return 1 foo 2 -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/returnInParentheses.kt b/compiler/testData/diagnostics/tests/tailCalls/returnInParentheses.kt deleted file mode 100644 index 3c715674e65..00000000000 --- a/compiler/testData/diagnostics/tests/tailCalls/returnInParentheses.kt +++ /dev/null @@ -1,3 +0,0 @@ -tailRecursive fun foo() { - (return foo()) -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/tailCallInBlockInParentheses.kt b/compiler/testData/diagnostics/tests/tailCalls/tailCallInBlockInParentheses.kt deleted file mode 100644 index f7333e21184..00000000000 --- a/compiler/testData/diagnostics/tests/tailCalls/tailCallInBlockInParentheses.kt +++ /dev/null @@ -1,6 +0,0 @@ -tailRecursive fun foo() { - return if (true) { - (foo()) - } - else Unit.VALUE -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/tailCallInParentheses.kt b/compiler/testData/diagnostics/tests/tailCalls/tailCallInParentheses.kt deleted file mode 100644 index cc42dc712f5..00000000000 --- a/compiler/testData/diagnostics/tests/tailCalls/tailCallInParentheses.kt +++ /dev/null @@ -1,3 +0,0 @@ -tailRecursive fun foo() { - return (foo()) -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/tailCalls/tailRecursionInFinally.kt b/compiler/testData/diagnostics/tests/tailCalls/tailRecursionInFinally.kt deleted file mode 100644 index cc3c94d4f68..00000000000 --- a/compiler/testData/diagnostics/tests/tailCalls/tailRecursionInFinally.kt +++ /dev/null @@ -1,9 +0,0 @@ -tailRecursive fun test() : Unit { - try { - test() - } catch (any : Exception) { - test() - } finally { - test() - } -} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 80929a343b6..35fefff94e3 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -33,7 +33,7 @@ import org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve; @InnerTestClasses({JetDiagnosticsTestGenerated.Tests.class, JetDiagnosticsTestGenerated.Script.class, JetDiagnosticsTestGenerated.TailRecursion.class}) public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEagerResolve { @TestMetadata("compiler/testData/diagnostics/tests") - @InnerTestClasses({Tests.Annotations.class, Tests.BackingField.class, Tests.CallableReference.class, Tests.Cast.class, Tests.CheckArguments.class, Tests.ClassObjects.class, Tests.ControlFlowAnalysis.class, Tests.ControlStructures.class, Tests.DataClasses.class, Tests.DataFlow.class, Tests.DataFlowInfoTraversal.class, Tests.DeclarationChecks.class, Tests.DelegatedProperty.class, Tests.Deparenthesize.class, Tests.Enum.class, Tests.Evaluate.class, Tests.Extensions.class, Tests.FunctionLiterals.class, Tests.Generics.class, Tests.IncompleteCode.class, Tests.Inference.class, Tests.Infos.class, Tests.Inline.class, Tests.Inner.class, Tests.J_k.class, Tests.Jdk_annotations.class, Tests.Library.class, Tests.NullabilityAndAutoCasts.class, Tests.NullableTypes.class, Tests.Numbers.class, Tests.Objects.class, Tests.OperatorsOverloading.class, Tests.Overload.class, Tests.Override.class, Tests.Recovery.class, Tests.Redeclarations.class, Tests.Regressions.class, Tests.Resolve.class, Tests.Scopes.class, Tests.SenselessComparison.class, Tests.Shadowing.class, Tests.SmartCasts.class, Tests.Substitutions.class, Tests.Subtyping.class, Tests.Suppress.class, Tests.TailCalls.class, Tests.ThisAndSuper.class, Tests.Varargs.class, Tests.When.class}) + @InnerTestClasses({Tests.Annotations.class, Tests.BackingField.class, Tests.CallableReference.class, Tests.Cast.class, Tests.CheckArguments.class, Tests.ClassObjects.class, Tests.ControlFlowAnalysis.class, Tests.ControlStructures.class, Tests.DataClasses.class, Tests.DataFlow.class, Tests.DataFlowInfoTraversal.class, Tests.DeclarationChecks.class, Tests.DelegatedProperty.class, Tests.Deparenthesize.class, Tests.Enum.class, Tests.Evaluate.class, Tests.Extensions.class, Tests.FunctionLiterals.class, Tests.Generics.class, Tests.IncompleteCode.class, Tests.Inference.class, Tests.Infos.class, Tests.Inline.class, Tests.Inner.class, Tests.J_k.class, Tests.Jdk_annotations.class, Tests.Library.class, Tests.NullabilityAndAutoCasts.class, Tests.NullableTypes.class, Tests.Numbers.class, Tests.Objects.class, Tests.OperatorsOverloading.class, Tests.Overload.class, Tests.Override.class, Tests.Recovery.class, Tests.Redeclarations.class, Tests.Regressions.class, Tests.Resolve.class, Tests.Scopes.class, Tests.SenselessComparison.class, Tests.Shadowing.class, Tests.SmartCasts.class, Tests.Substitutions.class, Tests.Subtyping.class, Tests.Suppress.class, Tests.ThisAndSuper.class, Tests.Varargs.class, Tests.When.class}) public static class Tests extends AbstractDiagnosticsTestWithEagerResolve { @TestMetadata("Abstract.kt") public void testAbstract() throws Exception { @@ -6456,69 +6456,6 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage } } - @TestMetadata("compiler/testData/diagnostics/tests/tailCalls") - public static class TailCalls extends AbstractDiagnosticsTestWithEagerResolve { - public void testAllFilesPresentInTailCalls() throws Exception { - JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/tailCalls"), Pattern.compile("^(.+)\\.kt$"), true); - } - - @TestMetadata("extensionTailCall.kt") - public void testExtensionTailCall() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/extensionTailCall.kt"); - } - - @TestMetadata("functionWithNoTails.kt") - public void testFunctionWithNoTails() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/functionWithNoTails.kt"); - } - - @TestMetadata("functionWithNonTailRecursions.kt") - public void testFunctionWithNonTailRecursions() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/functionWithNonTailRecursions.kt"); - } - - @TestMetadata("functionWithoutAnnotation.kt") - public void testFunctionWithoutAnnotation() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/functionWithoutAnnotation.kt"); - } - - @TestMetadata("infixRecursiveCall.kt") - public void testInfixRecursiveCall() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/infixRecursiveCall.kt"); - } - - @TestMetadata("recursiveCallInLambda.kt") - public void testRecursiveCallInLambda() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/recursiveCallInLambda.kt"); - } - - @TestMetadata("recursiveCallInLocalFunction.kt") - public void testRecursiveCallInLocalFunction() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/recursiveCallInLocalFunction.kt"); - } - - @TestMetadata("returnInParentheses.kt") - public void testReturnInParentheses() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/returnInParentheses.kt"); - } - - @TestMetadata("tailCallInBlockInParentheses.kt") - public void testTailCallInBlockInParentheses() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/tailCallInBlockInParentheses.kt"); - } - - @TestMetadata("tailCallInParentheses.kt") - public void testTailCallInParentheses() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/tailCallInParentheses.kt"); - } - - @TestMetadata("tailRecursionInFinally.kt") - public void testTailRecursionInFinally() throws Exception { - doTest("compiler/testData/diagnostics/tests/tailCalls/tailRecursionInFinally.kt"); - } - - } - @TestMetadata("compiler/testData/diagnostics/tests/thisAndSuper") public static class ThisAndSuper extends AbstractDiagnosticsTestWithEagerResolve { public void testAllFilesPresentInThisAndSuper() throws Exception { @@ -6751,7 +6688,6 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage suite.addTestSuite(Substitutions.class); suite.addTestSuite(Subtyping.class); suite.addTest(Suppress.innerSuite()); - suite.addTestSuite(TailCalls.class); suite.addTestSuite(ThisAndSuper.class); suite.addTestSuite(Varargs.class); suite.addTestSuite(When.class); @@ -6798,11 +6734,36 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/codegen/box/functions/tailRecursion/defaultArgs.kt"); } + @TestMetadata("extensionTailCall.kt") + public void testExtensionTailCall() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/extensionTailCall.kt"); + } + + @TestMetadata("functionWithNoTails.kt") + public void testFunctionWithNoTails() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/functionWithNoTails.kt"); + } + + @TestMetadata("functionWithNonTailRecursions.kt") + public void testFunctionWithNonTailRecursions() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/functionWithNonTailRecursions.kt"); + } + + @TestMetadata("functionWithoutAnnotation.kt") + public void testFunctionWithoutAnnotation() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/functionWithoutAnnotation.kt"); + } + @TestMetadata("infixCall.kt") public void testInfixCall() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/infixCall.kt"); } + @TestMetadata("infixRecursiveCall.kt") + public void testInfixRecursiveCall() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/infixRecursiveCall.kt"); + } + @TestMetadata("insideElvis.kt") public void testInsideElvis() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/insideElvis.kt"); @@ -6838,6 +6799,16 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/codegen/box/functions/tailRecursion/realStringRepeat.kt"); } + @TestMetadata("recursiveCallInLambda.kt") + public void testRecursiveCallInLambda() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLambda.kt"); + } + + @TestMetadata("recursiveCallInLocalFunction.kt") + public void testRecursiveCallInLocalFunction() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLocalFunction.kt"); + } + @TestMetadata("recursiveInnerFunction.kt") public void testRecursiveInnerFunction() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/recursiveInnerFunction.kt"); @@ -6863,6 +6834,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInIfInFinally.kt"); } + @TestMetadata("returnInParentheses.kt") + public void testReturnInParentheses() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInParentheses.kt"); + } + @TestMetadata("returnInTry.kt") public void testReturnInTry() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInTry.kt"); @@ -6888,6 +6864,21 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/codegen/box/functions/tailRecursion/sum.kt"); } + @TestMetadata("tailCallInBlockInParentheses.kt") + public void testTailCallInBlockInParentheses() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/tailCallInBlockInParentheses.kt"); + } + + @TestMetadata("tailCallInParentheses.kt") + public void testTailCallInParentheses() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/tailCallInParentheses.kt"); + } + + @TestMetadata("tailRecursionInFinally.kt") + public void testTailRecursionInFinally() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/tailRecursionInFinally.kt"); + } + @TestMetadata("thisReferences.kt") public void testThisReferences() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/thisReferences.kt"); diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java index 88120c7fe31..50db654cffc 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -2634,11 +2634,36 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest("compiler/testData/codegen/box/functions/tailRecursion/defaultArgs.kt"); } + @TestMetadata("extensionTailCall.kt") + public void testExtensionTailCall() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/extensionTailCall.kt"); + } + + @TestMetadata("functionWithNoTails.kt") + public void testFunctionWithNoTails() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/functionWithNoTails.kt"); + } + + @TestMetadata("functionWithNonTailRecursions.kt") + public void testFunctionWithNonTailRecursions() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/functionWithNonTailRecursions.kt"); + } + + @TestMetadata("functionWithoutAnnotation.kt") + public void testFunctionWithoutAnnotation() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/functionWithoutAnnotation.kt"); + } + @TestMetadata("infixCall.kt") public void testInfixCall() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/infixCall.kt"); } + @TestMetadata("infixRecursiveCall.kt") + public void testInfixRecursiveCall() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/infixRecursiveCall.kt"); + } + @TestMetadata("insideElvis.kt") public void testInsideElvis() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/insideElvis.kt"); @@ -2674,6 +2699,16 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest("compiler/testData/codegen/box/functions/tailRecursion/realStringRepeat.kt"); } + @TestMetadata("recursiveCallInLambda.kt") + public void testRecursiveCallInLambda() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLambda.kt"); + } + + @TestMetadata("recursiveCallInLocalFunction.kt") + public void testRecursiveCallInLocalFunction() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/recursiveCallInLocalFunction.kt"); + } + @TestMetadata("recursiveInnerFunction.kt") public void testRecursiveInnerFunction() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/recursiveInnerFunction.kt"); @@ -2699,6 +2734,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInIfInFinally.kt"); } + @TestMetadata("returnInParentheses.kt") + public void testReturnInParentheses() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInParentheses.kt"); + } + @TestMetadata("returnInTry.kt") public void testReturnInTry() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInTry.kt"); @@ -2724,6 +2764,21 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest("compiler/testData/codegen/box/functions/tailRecursion/sum.kt"); } + @TestMetadata("tailCallInBlockInParentheses.kt") + public void testTailCallInBlockInParentheses() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/tailCallInBlockInParentheses.kt"); + } + + @TestMetadata("tailCallInParentheses.kt") + public void testTailCallInParentheses() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/tailCallInParentheses.kt"); + } + + @TestMetadata("tailRecursionInFinally.kt") + public void testTailRecursionInFinally() throws Exception { + doTest("compiler/testData/codegen/box/functions/tailRecursion/tailRecursionInFinally.kt"); + } + @TestMetadata("thisReferences.kt") public void testThisReferences() throws Exception { doTest("compiler/testData/codegen/box/functions/tailRecursion/thisReferences.kt");