diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index af1ef10ca96..5af1d9a31dc 100755 --- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -1145,10 +1145,6 @@ fun main(args: Array) { model("reservedWords/cases") } - testClass() { - model("dynamic/cases") - } - testClass() { model("multiModule/cases") } @@ -1185,10 +1181,6 @@ fun main(args: Array) { model("rtti/cases") } - testClass() { - model("expression/cast/cases") - } - testClass() { model("reflection/light/cases") } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index ec8a38c0723..ac3b65b64a1 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -1184,6 +1184,135 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { } } + @TestMetadata("js/js.translator/testData/box/dynamic") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Dynamic extends AbstractBoxJsTest { + public void testAllFilesPresentInDynamic() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/dynamic"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("binaryOperations.kt") + public void testBinaryOperations() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/binaryOperations.kt"); + doTest(fileName); + } + + @TestMetadata("callGetMethod.kt") + public void testCallGetMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/callGetMethod.kt"); + doTest(fileName); + } + + @TestMetadata("callMethods.kt") + public void testCallMethods() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/callMethods.kt"); + doTest(fileName); + } + + @TestMetadata("callSetMethod.kt") + public void testCallSetMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/callSetMethod.kt"); + doTest(fileName); + } + + @TestMetadata("compareTo.kt") + public void testCompareTo() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/compareTo.kt"); + doTest(fileName); + } + + @TestMetadata("equals.kt") + public void testEquals() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/equals.kt"); + doTest(fileName); + } + + @TestMetadata("getByBrackets.kt") + public void testGetByBrackets() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/getByBrackets.kt"); + doTest(fileName); + } + + @TestMetadata("identityEquals.kt") + public void testIdentityEquals() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/identityEquals.kt"); + doTest(fileName); + } + + @TestMetadata("in.kt") + public void testIn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/in.kt"); + doTest(fileName); + } + + @TestMetadata("incrementAndDecrement.kt") + public void testIncrementAndDecrement() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/incrementAndDecrement.kt"); + doTest(fileName); + } + + @TestMetadata("infixCall.kt") + public void testInfixCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/infixCall.kt"); + doTest(fileName); + } + + @TestMetadata("invoke.kt") + public void testInvoke() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/invoke.kt"); + doTest(fileName); + } + + @TestMetadata("is.kt") + public void testIs() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/is.kt"); + doTest(fileName); + } + + @TestMetadata("isJsPrimitiveType.kt") + public void testIsJsPrimitiveType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/isJsPrimitiveType.kt"); + doTest(fileName); + } + + @TestMetadata("iterator.kt") + public void testIterator() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/iterator.kt"); + doTest(fileName); + } + + @TestMetadata("nameClashing.kt") + public void testNameClashing() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/nameClashing.kt"); + doTest(fileName); + } + + @TestMetadata("operationsWithAssignment.kt") + public void testOperationsWithAssignment() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/operationsWithAssignment.kt"); + doTest(fileName); + } + + @TestMetadata("propertyAccess.kt") + public void testPropertyAccess() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/propertyAccess.kt"); + doTest(fileName); + } + + @TestMetadata("setByBrackets.kt") + public void testSetByBrackets() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/setByBrackets.kt"); + doTest(fileName); + } + + @TestMetadata("unaryOperations.kt") + public void testUnaryOperations() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/dynamic/unaryOperations.kt"); + doTest(fileName); + } + } + @TestMetadata("js/js.translator/testData/box/enum") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -1259,6 +1388,1560 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { } } + @TestMetadata("js/js.translator/testData/box/expression") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Expression extends AbstractBoxJsTest { + public void testAllFilesPresentInExpression() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("js/js.translator/testData/box/expression/cast") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Cast extends AbstractBoxJsTest { + public void testAllFilesPresentInCast() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/cast"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("castExtensionToKMutableProperty.kt") + public void testCastExtensionToKMutableProperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castExtensionToKMutableProperty.kt"); + doTest(fileName); + } + + @TestMetadata("castExtensionToKProperty1.kt") + public void testCastExtensionToKProperty1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castExtensionToKProperty1.kt"); + doTest(fileName); + } + + @TestMetadata("castToAny.kt") + public void testCastToAny() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToAny.kt"); + doTest(fileName); + } + + @TestMetadata("castToArray.kt") + public void testCastToArray() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToArray.kt"); + doTest(fileName); + } + + @TestMetadata("castToFunction.kt") + public void testCastToFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToFunction.kt"); + doTest(fileName); + } + + @TestMetadata("castToGenericType.kt") + public void testCastToGenericType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToGenericType.kt"); + doTest(fileName); + } + + @TestMetadata("castToGenericTypeWithMultipleUpperBounds.kt") + public void testCastToGenericTypeWithMultipleUpperBounds() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToGenericTypeWithMultipleUpperBounds.kt"); + doTest(fileName); + } + + @TestMetadata("castToGenericTypeWithUpperBound.kt") + public void testCastToGenericTypeWithUpperBound() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToGenericTypeWithUpperBound.kt"); + doTest(fileName); + } + + @TestMetadata("castToKMutableProperty0.kt") + public void testCastToKMutableProperty0() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToKMutableProperty0.kt"); + doTest(fileName); + } + + @TestMetadata("castToKMutableProperty1.kt") + public void testCastToKMutableProperty1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToKMutableProperty1.kt"); + doTest(fileName); + } + + @TestMetadata("castToKProperty0.kt") + public void testCastToKProperty0() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToKProperty0.kt"); + doTest(fileName); + } + + @TestMetadata("castToKProperty1.kt") + public void testCastToKProperty1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToKProperty1.kt"); + doTest(fileName); + } + + @TestMetadata("castToNotNull.kt") + public void testCastToNotNull() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToNotNull.kt"); + doTest(fileName); + } + + @TestMetadata("castToNullable.kt") + public void testCastToNullable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/castToNullable.kt"); + doTest(fileName); + } + + @TestMetadata("implicitCastToLong.kt") + public void testImplicitCastToLong() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/implicitCastToLong.kt"); + doTest(fileName); + } + + @TestMetadata("noRuntimeTypeCheck.kt") + public void testNoRuntimeTypeCheck() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/noRuntimeTypeCheck.kt"); + doTest(fileName); + } + + @TestMetadata("primitiveToClass.kt") + public void testPrimitiveToClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/primitiveToClass.kt"); + doTest(fileName); + } + + @TestMetadata("reifiedToNotNull.kt") + public void testReifiedToNotNull() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/reifiedToNotNull.kt"); + doTest(fileName); + } + + @TestMetadata("reifiedToNullable1.kt") + public void testReifiedToNullable1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/reifiedToNullable1.kt"); + doTest(fileName); + } + + @TestMetadata("reifiedToNullable2.kt") + public void testReifiedToNullable2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/reifiedToNullable2.kt"); + doTest(fileName); + } + + @TestMetadata("safeCastToGenericTypeWithUpperBound.kt") + public void testSafeCastToGenericTypeWithUpperBound() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/safeCastToGenericTypeWithUpperBound.kt"); + doTest(fileName); + } + + @TestMetadata("safeCastToNotNull.kt") + public void testSafeCastToNotNull() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/safeCastToNotNull.kt"); + doTest(fileName); + } + + @TestMetadata("safeCastToNullable.kt") + public void testSafeCastToNullable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/safeCastToNullable.kt"); + doTest(fileName); + } + + @TestMetadata("safeCastToReifiedNotNull.kt") + public void testSafeCastToReifiedNotNull() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/safeCastToReifiedNotNull.kt"); + doTest(fileName); + } + + @TestMetadata("safeCastToReifiedNullable.kt") + public void testSafeCastToReifiedNullable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/safeCastToReifiedNullable.kt"); + doTest(fileName); + } + + @TestMetadata("smartCastInExtensionFunction.kt") + public void testSmartCastInExtensionFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/smartCastInExtensionFunction.kt"); + doTest(fileName); + } + + @TestMetadata("smartCastInFunction.kt") + public void testSmartCastInFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/cast/smartCastInFunction.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/compareTo") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class CompareTo extends AbstractBoxJsTest { + public void testAllFilesPresentInCompareTo() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/compareTo"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("customCompareToMethod.kt") + public void testCustomCompareToMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/compareTo/customCompareToMethod.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/dollarParameter") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class DollarParameter extends AbstractBoxJsTest { + public void testAllFilesPresentInDollarParameter() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/dollarParameter"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("dollarParameter.kt") + public void testDollarParameter() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/dollarParameter/dollarParameter.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/equals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Equals extends AbstractBoxJsTest { + public void testAllFilesPresentInEquals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/equals"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("arrays.kt") + public void testArrays() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/arrays.kt"); + doTest(fileName); + } + + @TestMetadata("compareNullableListWithNull.kt") + public void testCompareNullableListWithNull() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/compareNullableListWithNull.kt"); + doTest(fileName); + } + + @TestMetadata("compareNullablesWithCustomEquals.kt") + public void testCompareNullablesWithCustomEquals() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/compareNullablesWithCustomEquals.kt"); + doTest(fileName); + } + + @TestMetadata("compareToNullWithCustomEquals.kt") + public void testCompareToNullWithCustomEquals() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/compareToNullWithCustomEquals.kt"); + doTest(fileName); + } + + @TestMetadata("customEqualsMethod.kt") + public void testCustomEqualsMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/customEqualsMethod.kt"); + doTest(fileName); + } + + @TestMetadata("customEqualsMethodOnAny.kt") + public void testCustomEqualsMethodOnAny() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/customEqualsMethodOnAny.kt"); + doTest(fileName); + } + + @TestMetadata("equalsBehaviorOnNull.kt") + public void testEqualsBehaviorOnNull() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/equalsBehaviorOnNull.kt"); + doTest(fileName); + } + + @TestMetadata("equalsNullOrUndefined.kt") + public void testEqualsNullOrUndefined() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/equalsNullOrUndefined.kt"); + doTest(fileName); + } + + @TestMetadata("explicitEqualsMethod.kt") + public void testExplicitEqualsMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/explicitEqualsMethod.kt"); + doTest(fileName); + } + + @TestMetadata("explicitEqualsMethodForPrimitives.kt") + public void testExplicitEqualsMethodForPrimitives() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/explicitEqualsMethodForPrimitives.kt"); + doTest(fileName); + } + + @TestMetadata("kt2370.kt") + public void testKt2370() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/kt2370.kt"); + doTest(fileName); + } + + @TestMetadata("stringsEqual.kt") + public void testStringsEqual() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/stringsEqual.kt"); + doTest(fileName); + } + + @TestMetadata("superEquals.kt") + public void testSuperEquals() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/equals/superEquals.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/evaluationOrder") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class EvaluationOrder extends AbstractBoxJsTest { + @TestMetadata("2dangerousInExpression.kt") + public void test2dangerousInExpression() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/2dangerousInExpression.kt"); + doTest(fileName); + } + + public void testAllFilesPresentInEvaluationOrder() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/evaluationOrder"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("andAndWithBreakContinueReturn.kt") + public void testAndAndWithBreakContinueReturn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/andAndWithBreakContinueReturn.kt"); + doTest(fileName); + } + + @TestMetadata("andAndWithSideEffect.kt") + public void testAndAndWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/andAndWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("assignToArrayElementWithSideEffect.kt") + public void testAssignToArrayElementWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/assignToArrayElementWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("assignToDotQualifiedWithSideEffect.kt") + public void testAssignToDotQualifiedWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/assignToDotQualifiedWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("callArgs.kt") + public void testCallArgs() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/callArgs.kt"); + doTest(fileName); + } + + @TestMetadata("callVarargs.kt") + public void testCallVarargs() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/callVarargs.kt"); + doTest(fileName); + } + + @TestMetadata("callWithBreakContinueReturn.kt") + public void testCallWithBreakContinueReturn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/callWithBreakContinueReturn.kt"); + doTest(fileName); + } + + @TestMetadata("castWithBreakContinueReturn.kt") + public void testCastWithBreakContinueReturn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/castWithBreakContinueReturn.kt"); + doTest(fileName); + } + + @TestMetadata("compareToIntrinsicWithSideEffect.kt") + public void testCompareToIntrinsicWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/compareToIntrinsicWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("dangerousInline.kt") + public void testDangerousInline() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/dangerousInline.kt"); + doTest(fileName); + } + + @TestMetadata("dangerousInsideDangerous.kt") + public void testDangerousInsideDangerous() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/dangerousInsideDangerous.kt"); + doTest(fileName); + } + + @TestMetadata("elvisComplex.kt") + public void testElvisComplex() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/elvisComplex.kt"); + doTest(fileName); + } + + @TestMetadata("elvisWithBreakContinueReturn.kt") + public void testElvisWithBreakContinueReturn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/elvisWithBreakContinueReturn.kt"); + doTest(fileName); + } + + @TestMetadata("equalsIntrinsicWithSideEffect.kt") + public void testEqualsIntrinsicWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/equalsIntrinsicWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("evaluationOrder1.kt") + public void testEvaluationOrder1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/evaluationOrder1.kt"); + doTest(fileName); + } + + @TestMetadata("evaluationOrder2.kt") + public void testEvaluationOrder2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/evaluationOrder2.kt"); + doTest(fileName); + } + + @TestMetadata("ifAsFunArgument.kt") + public void testIfAsFunArgument() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/ifAsFunArgument.kt"); + doTest(fileName); + } + + @TestMetadata("ifAsPlusArgument.kt") + public void testIfAsPlusArgument() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/ifAsPlusArgument.kt"); + doTest(fileName); + } + + @TestMetadata("ifWithComplex.kt") + public void testIfWithComplex() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/ifWithComplex.kt"); + doTest(fileName); + } + + @TestMetadata("intrinsicComplex.kt") + public void testIntrinsicComplex() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/intrinsicComplex.kt"); + doTest(fileName); + } + + @TestMetadata("intrinsicWithBreakContinueReturn.kt") + public void testIntrinsicWithBreakContinueReturn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/intrinsicWithBreakContinueReturn.kt"); + doTest(fileName); + } + + @TestMetadata("literalFunctionAsArgumentWithSideEffect.kt") + public void testLiteralFunctionAsArgumentWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/literalFunctionAsArgumentWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("loopWithBreakContinueReturnInCondition.kt") + public void testLoopWithBreakContinueReturnInCondition() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/loopWithBreakContinueReturnInCondition.kt"); + doTest(fileName); + } + + @TestMetadata("orOrWithBreakContinueReturn.kt") + public void testOrOrWithBreakContinueReturn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/orOrWithBreakContinueReturn.kt"); + doTest(fileName); + } + + @TestMetadata("orOrWithSideEffect.kt") + public void testOrOrWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/orOrWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("reassignmentLhsCaching.kt") + public void testReassignmentLhsCaching() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/reassignmentLhsCaching.kt"); + doTest(fileName); + } + + @TestMetadata("whenAsMinusArgument.kt") + public void testWhenAsMinusArgument() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/whenAsMinusArgument.kt"); + doTest(fileName); + } + + @TestMetadata("whenJsLiteralWithSideEffect.kt") + public void testWhenJsLiteralWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/whenJsLiteralWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithComplexConditions.kt") + public void testWhenWithComplexConditions() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/evaluationOrder/whenWithComplexConditions.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/for") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class For extends AbstractBoxJsTest { + public void testAllFilesPresentInFor() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/for"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("forIteratesOverArray.kt") + public void testForIteratesOverArray() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/forIteratesOverArray.kt"); + doTest(fileName); + } + + @TestMetadata("forIteratesOverLiteralRange.kt") + public void testForIteratesOverLiteralRange() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/forIteratesOverLiteralRange.kt"); + doTest(fileName); + } + + @TestMetadata("forIteratesOverNonLiteralRange.kt") + public void testForIteratesOverNonLiteralRange() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/forIteratesOverNonLiteralRange.kt"); + doTest(fileName); + } + + @TestMetadata("forIteratesOverSomethingWithIterator.kt") + public void testForIteratesOverSomethingWithIterator() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/forIteratesOverSomethingWithIterator.kt"); + doTest(fileName); + } + + @TestMetadata("forOnEmptyArray.kt") + public void testForOnEmptyArray() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/forOnEmptyArray.kt"); + doTest(fileName); + } + + @TestMetadata("forWithComplexOneStatement.kt") + public void testForWithComplexOneStatement() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/forWithComplexOneStatement.kt"); + doTest(fileName); + } + + @TestMetadata("forWithEmptyBody.kt") + public void testForWithEmptyBody() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/forWithEmptyBody.kt"); + doTest(fileName); + } + + @TestMetadata("forWithSideEffectImElementAccessAndWithEmptyBody.kt") + public void testForWithSideEffectImElementAccessAndWithEmptyBody() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/forWithSideEffectImElementAccessAndWithEmptyBody.kt"); + doTest(fileName); + } + + @TestMetadata("labeledFor.kt") + public void testLabeledFor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/labeledFor.kt"); + doTest(fileName); + } + + @TestMetadata("labeledForWithContinue.kt") + public void testLabeledForWithContinue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/labeledForWithContinue.kt"); + doTest(fileName); + } + + @TestMetadata("labeledForWithWhile.kt") + public void testLabeledForWithWhile() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/for/labeledForWithWhile.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/function") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Function extends AbstractBoxJsTest { + @TestMetadata("adderClosure.kt") + public void testAdderClosure() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/adderClosure.kt"); + doTest(fileName); + } + + public void testAllFilesPresentInFunction() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/function"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("callFunInInit.kt") + public void testCallFunInInit() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/callFunInInit.kt"); + doTest(fileName); + } + + @TestMetadata("closureWithParameter.kt") + public void testClosureWithParameter() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/closureWithParameter.kt"); + doTest(fileName); + } + + @TestMetadata("closureWithParameterAndBoxing.kt") + public void testClosureWithParameterAndBoxing() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/closureWithParameterAndBoxing.kt"); + doTest(fileName); + } + + @TestMetadata("defaultParameters.kt") + public void testDefaultParameters() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/defaultParameters.kt"); + doTest(fileName); + } + + @TestMetadata("enclosingThis.kt") + public void testEnclosingThis() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/enclosingThis.kt"); + doTest(fileName); + } + + @TestMetadata("expressionAsExtFunction.kt") + public void testExpressionAsExtFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/expressionAsExtFunction.kt"); + doTest(fileName); + } + + @TestMetadata("expressionAsFunction.kt") + public void testExpressionAsFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/expressionAsFunction.kt"); + doTest(fileName); + } + + @TestMetadata("functionExpression.kt") + public void testFunctionExpression() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/functionExpression.kt"); + doTest(fileName); + } + + @TestMetadata("functionInsideFunction.kt") + public void testFunctionInsideFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/functionInsideFunction.kt"); + doTest(fileName); + } + + @TestMetadata("functionLiteral.kt") + public void testFunctionLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/functionLiteral.kt"); + doTest(fileName); + } + + @TestMetadata("functionLiteralAsLastParameter.kt") + public void testFunctionLiteralAsLastParameter() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/functionLiteralAsLastParameter.kt"); + doTest(fileName); + } + + @TestMetadata("functionLiteralAsParameter.kt") + public void testFunctionLiteralAsParameter() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/functionLiteralAsParameter.kt"); + doTest(fileName); + } + + @TestMetadata("functionUsedBeforeDeclaration.kt") + public void testFunctionUsedBeforeDeclaration() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/functionUsedBeforeDeclaration.kt"); + doTest(fileName); + } + + @TestMetadata("functionWithTwoParametersCall.kt") + public void testFunctionWithTwoParametersCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/functionWithTwoParametersCall.kt"); + doTest(fileName); + } + + @TestMetadata("implicitItParameter.kt") + public void testImplicitItParameter() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/implicitItParameter.kt"); + doTest(fileName); + } + + @TestMetadata("KT-921.kt") + public void testKT_921() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/KT-921.kt"); + doTest(fileName); + } + + @TestMetadata("lambdaOrLocalFunInsideEnumMethod.kt") + public void testLambdaOrLocalFunInsideEnumMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/lambdaOrLocalFunInsideEnumMethod.kt"); + doTest(fileName); + } + + @TestMetadata("localExtFunction.kt") + public void testLocalExtFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/localExtFunction.kt"); + doTest(fileName); + } + + @TestMetadata("loopClosure.kt") + public void testLoopClosure() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/loopClosure.kt"); + doTest(fileName); + } + + @TestMetadata("mangling.kt") + public void testMangling() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/mangling.kt"); + doTest(fileName); + } + + @TestMetadata("manglingAnyMethods.kt") + public void testManglingAnyMethods() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/manglingAnyMethods.kt"); + doTest(fileName); + } + + @TestMetadata("manglingClashFunctionsAndClasses.kt") + public void testManglingClashFunctionsAndClasses() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/manglingClashFunctionsAndClasses.kt"); + doTest(fileName); + } + + @TestMetadata("manglingClashWithFunctionsWithoutParameters.kt") + public void testManglingClashWithFunctionsWithoutParameters() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/manglingClashWithFunctionsWithoutParameters.kt"); + doTest(fileName); + } + + @TestMetadata("manglingStability.kt") + public void testManglingStability() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/manglingStability.kt"); + doTest(fileName); + } + + @TestMetadata("namedArguments.kt") + public void testNamedArguments() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/namedArguments.kt"); + doTest(fileName); + } + + @TestMetadata("overloadClassConstructorByFactoryMethod.kt") + public void testOverloadClassConstructorByFactoryMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/overloadClassConstructorByFactoryMethod.kt"); + doTest(fileName); + } + + @TestMetadata("overloadOverridenFun.kt") + public void testOverloadOverridenFun() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/overloadOverridenFun.kt"); + doTest(fileName); + } + + @TestMetadata("overloadingWithInheritance.kt") + public void testOverloadingWithInheritance() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/overloadingWithInheritance.kt"); + doTest(fileName); + } + + @TestMetadata("vararg.kt") + public void testVararg() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/vararg.kt"); + doTest(fileName); + } + + @TestMetadata("whenFunction.kt") + public void testWhenFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/whenFunction.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/identifierClash") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class IdentifierClash extends AbstractBoxJsTest { + public void testAllFilesPresentInIdentifierClash() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/identifierClash"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("overloadedFun.kt") + public void testOverloadedFun() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/identifierClash/overloadedFun.kt"); + doTest(fileName); + } + + @TestMetadata("useVariableOfNameOfFunction.kt") + public void testUseVariableOfNameOfFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/identifierClash/useVariableOfNameOfFunction.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/identityEquals") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class IdentityEquals extends AbstractBoxJsTest { + public void testAllFilesPresentInIdentityEquals() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/identityEquals"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("identityEqualsMethod.kt") + public void testIdentityEqualsMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/identityEquals/identityEqualsMethod.kt"); + doTest(fileName); + } + + @TestMetadata("identityEqualsMethodForPrimitives.kt") + public void testIdentityEqualsMethodForPrimitives() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/identityEquals/identityEqualsMethodForPrimitives.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/if") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class If extends AbstractBoxJsTest { + public void testAllFilesPresentInIf() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/if"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("ifElseAsExpressionWithThrow.kt") + public void testIfElseAsExpressionWithThrow() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/if/ifElseAsExpressionWithThrow.kt"); + doTest(fileName); + } + + @TestMetadata("ifInsideLambda.kt") + public void testIfInsideLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/if/ifInsideLambda.kt"); + doTest(fileName); + } + + @TestMetadata("nestedIf.kt") + public void testNestedIf() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/if/nestedIf.kt"); + doTest(fileName); + } + + @TestMetadata("withEmptyBlocks.kt") + public void testWithEmptyBlocks() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/if/withEmptyBlocks.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/invoke") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Invoke extends AbstractBoxJsTest { + public void testAllFilesPresentInInvoke() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/invoke"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("explicitInvokeLambda.kt") + public void testExplicitInvokeLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/explicitInvokeLambda.kt"); + doTest(fileName); + } + + @TestMetadata("extensionInvoke.kt") + public void testExtensionInvoke() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/extensionInvoke.kt"); + doTest(fileName); + } + + @TestMetadata("inheritFromFunctionTraits.kt") + public void testInheritFromFunctionTraits() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/inheritFromFunctionTraits.kt"); + doTest(fileName); + } + + @TestMetadata("invokeInExtensionFunctionLiteral.kt") + public void testInvokeInExtensionFunctionLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/invokeInExtensionFunctionLiteral.kt"); + doTest(fileName); + } + + @TestMetadata("invokeInFunctionLiteral.kt") + public void testInvokeInFunctionLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/invokeInFunctionLiteral.kt"); + doTest(fileName); + } + + @TestMetadata("invokeMethod.kt") + public void testInvokeMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/invokeMethod.kt"); + doTest(fileName); + } + + @TestMetadata("invokeOnExprByConvention.kt") + public void testInvokeOnExprByConvention() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/invokeOnExprByConvention.kt"); + doTest(fileName); + } + + @TestMetadata("invokeWithDispatchAndExtensionReceivers.kt") + public void testInvokeWithDispatchAndExtensionReceivers() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/invokeWithDispatchAndExtensionReceivers.kt"); + doTest(fileName); + } + + @TestMetadata("invokeWithDispatchReceiver.kt") + public void testInvokeWithDispatchReceiver() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/invokeWithDispatchReceiver.kt"); + doTest(fileName); + } + + @TestMetadata("invokeWithExtensionReceiver.kt") + public void testInvokeWithExtensionReceiver() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/invokeWithExtensionReceiver.kt"); + doTest(fileName); + } + + @TestMetadata("invokeWithImplicitDispatchReceiverAndExtensionReceiver.kt") + public void testInvokeWithImplicitDispatchReceiverAndExtensionReceiver() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/invoke/invokeWithImplicitDispatchReceiverAndExtensionReceiver.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/misc") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Misc extends AbstractBoxJsTest { + public void testAllFilesPresentInMisc() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/misc"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("classWithoutPackage.kt") + public void testClassWithoutPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/classWithoutPackage.kt"); + doTest(fileName); + } + + @TestMetadata("elvis.kt") + public void testElvis() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/elvis.kt"); + doTest(fileName); + } + + @TestMetadata("elvisReturnNested.kt") + public void testElvisReturnNested() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/elvisReturnNested.kt"); + doTest(fileName); + } + + @TestMetadata("elvisReturnSimple.kt") + public void testElvisReturnSimple() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/elvisReturnSimple.kt"); + doTest(fileName); + } + + @TestMetadata("elvisWithThrow.kt") + public void testElvisWithThrow() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/elvisWithThrow.kt"); + doTest(fileName); + } + + @TestMetadata("exclExcl.kt") + public void testExclExcl() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/exclExcl.kt"); + doTest(fileName); + } + + @TestMetadata("exclExclResultIsComputedOnce.kt") + public void testExclExclResultIsComputedOnce() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/exclExclResultIsComputedOnce.kt"); + doTest(fileName); + } + + @TestMetadata("exclExclThrows.kt") + public void testExclExclThrows() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/exclExclThrows.kt"); + doTest(fileName); + } + + @TestMetadata("extensionLiteralCalledInsideExtensionFunction.kt") + public void testExtensionLiteralCalledInsideExtensionFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/extensionLiteralCalledInsideExtensionFunction.kt"); + doTest(fileName); + } + + @TestMetadata("extensionLiteralCreatedAtPackageLevel.kt") + public void testExtensionLiteralCreatedAtPackageLevel() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/extensionLiteralCreatedAtPackageLevel.kt"); + doTest(fileName); + } + + @TestMetadata("funInConstructor.kt") + public void testFunInConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/funInConstructor.kt"); + doTest(fileName); + } + + @TestMetadata("funInConstructorBlock.kt") + public void testFunInConstructorBlock() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/funInConstructorBlock.kt"); + doTest(fileName); + } + + @TestMetadata("inheritFromJetIterator.kt") + public void testInheritFromJetIterator() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/inheritFromJetIterator.kt"); + doTest(fileName); + } + + @TestMetadata("intRange.kt") + public void testIntRange() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/intRange.kt"); + doTest(fileName); + } + + @TestMetadata("KT-1052.kt") + public void testKT_1052() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-1052.kt"); + doTest(fileName); + } + + @TestMetadata("KT-1052-2.kt") + public void testKT_1052_2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-1052-2.kt"); + doTest(fileName); + } + + @TestMetadata("KT-1361-1.kt") + public void testKT_1361_1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-1361-1.kt"); + doTest(fileName); + } + + @TestMetadata("KT-1361-2.kt") + public void testKT_1361_2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-1361-2.kt"); + doTest(fileName); + } + + @TestMetadata("KT-1865.kt") + public void testKT_1865() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-1865.kt"); + doTest(fileName); + } + + @TestMetadata("KT-2314.kt") + public void testKT_2314() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-2314.kt"); + doTest(fileName); + } + + @TestMetadata("KT-5058.kt") + public void testKT_5058() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-5058.kt"); + doTest(fileName); + } + + @TestMetadata("KT-740.kt") + public void testKT_740() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-740.kt"); + doTest(fileName); + } + + @TestMetadata("KT-740-2.kt") + public void testKT_740_2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-740-2.kt"); + doTest(fileName); + } + + @TestMetadata("KT-740-3.kt") + public void testKT_740_3() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-740-3.kt"); + doTest(fileName); + } + + @TestMetadata("KT-817.kt") + public void testKT_817() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/KT-817.kt"); + doTest(fileName); + } + + @TestMetadata("kt9443.kt") + public void testKt9443() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/kt9443.kt"); + doTest(fileName); + } + + @TestMetadata("lazyProperty.kt") + public void testLazyProperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/lazyProperty.kt"); + doTest(fileName); + } + + @TestMetadata("localProperty.kt") + public void testLocalProperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/localProperty.kt"); + doTest(fileName); + } + + @TestMetadata("localVarAsFunction.kt") + public void testLocalVarAsFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/localVarAsFunction.kt"); + doTest(fileName); + } + + @TestMetadata("packageLevelVarInPackage.kt") + public void testPackageLevelVarInPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/packageLevelVarInPackage.kt"); + doTest(fileName); + } + + @TestMetadata("packageLevelVarInRoot.kt") + public void testPackageLevelVarInRoot() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/packageLevelVarInRoot.kt"); + doTest(fileName); + } + + @TestMetadata("packagePropertyCalledAsFun.kt") + public void testPackagePropertyCalledAsFun() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/packagePropertyCalledAsFun.kt"); + doTest(fileName); + } + + @TestMetadata("propertiesWithExplicitlyDefinedAccessorsWithoutBodies.kt") + public void testPropertiesWithExplicitlyDefinedAccessorsWithoutBodies() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/propertiesWithExplicitlyDefinedAccessorsWithoutBodies.kt"); + doTest(fileName); + } + + @TestMetadata("propertyAsFunCalledOnConstructor.kt") + public void testPropertyAsFunCalledOnConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/propertyAsFunCalledOnConstructor.kt"); + doTest(fileName); + } + + @TestMetadata("rightAssocForGeneratedConditionalOperator.kt") + public void testRightAssocForGeneratedConditionalOperator() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/rightAssocForGeneratedConditionalOperator.kt"); + doTest(fileName); + } + + @TestMetadata("safeCallComputesExpressionOnlyOnce.kt") + public void testSafeCallComputesExpressionOnlyOnce() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/safeCallComputesExpressionOnlyOnce.kt"); + doTest(fileName); + } + + @TestMetadata("stringInterpolationEvaluationOrder.kt") + public void testStringInterpolationEvaluationOrder() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/stringInterpolationEvaluationOrder.kt"); + doTest(fileName); + } + + @TestMetadata("temporaryVariableCreatedInPackageInitializer.kt") + public void testTemporaryVariableCreatedInPackageInitializer() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/temporaryVariableCreatedInPackageInitializer.kt"); + doTest(fileName); + } + + @TestMetadata("throwThrow.kt") + public void testThrowThrow() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/throwThrow.kt"); + doTest(fileName); + } + + @TestMetadata("toGeneratorInStdlib.kt") + public void testToGeneratorInStdlib() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/toGeneratorInStdlib.kt"); + doTest(fileName); + } + + @TestMetadata("whenReturnedWithoutBlock.kt") + public void testWhenReturnedWithoutBlock() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/misc/whenReturnedWithoutBlock.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/stringClass") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class StringClass extends AbstractBoxJsTest { + public void testAllFilesPresentInStringClass() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/stringClass"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("extensionMethods.kt") + public void testExtensionMethods() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/extensionMethods.kt"); + doTest(fileName); + } + + @TestMetadata("intInTemplate.kt") + public void testIntInTemplate() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/intInTemplate.kt"); + doTest(fileName); + } + + @TestMetadata("kt2227.kt") + public void testKt2227() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/kt2227.kt"); + doTest(fileName); + } + + @TestMetadata("kt2227_2.kt") + public void testKt2227_2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/kt2227_2.kt"); + doTest(fileName); + } + + @TestMetadata("multipleExpressionsInTemplate.kt") + public void testMultipleExpressionsInTemplate() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/multipleExpressionsInTemplate.kt"); + doTest(fileName); + } + + @TestMetadata("nullableTypeInStringTemplate.kt") + public void testNullableTypeInStringTemplate() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/nullableTypeInStringTemplate.kt"); + doTest(fileName); + } + + @TestMetadata("numbersInTemplate.kt") + public void testNumbersInTemplate() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/numbersInTemplate.kt"); + doTest(fileName); + } + + @TestMetadata("objectToStringCallInTemplate.kt") + public void testObjectToStringCallInTemplate() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/objectToStringCallInTemplate.kt"); + doTest(fileName); + } + + @TestMetadata("stringAssignment.kt") + public void testStringAssignment() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/stringAssignment.kt"); + doTest(fileName); + } + + @TestMetadata("stringConstant.kt") + public void testStringConstant() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/stringConstant.kt"); + doTest(fileName); + } + + @TestMetadata("stringInTemplate.kt") + public void testStringInTemplate() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/stringInTemplate.kt"); + doTest(fileName); + } + + @TestMetadata("stringNotEqualToNumber.kt") + public void testStringNotEqualToNumber() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/stringNotEqualToNumber.kt"); + doTest(fileName); + } + + @TestMetadata("stringSplit.kt") + public void testStringSplit() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/stringSplit.kt"); + doTest(fileName); + } + + @TestMetadata("subSequence.kt") + public void testSubSequence() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringClass/subSequence.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/stringTemplates") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class StringTemplates extends AbstractBoxJsTest { + public void testAllFilesPresentInStringTemplates() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/stringTemplates"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("objectWithToString.kt") + public void testObjectWithToString() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringTemplates/objectWithToString.kt"); + doTest(fileName); + } + + @TestMetadata("stringValues.kt") + public void testStringValues() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/stringTemplates/stringValues.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/try") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Try extends AbstractBoxJsTest { + public void testAllFilesPresentInTry() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/try"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("multipleCatchBlocks.kt") + public void testMultipleCatchBlocks() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/try/multipleCatchBlocks.kt"); + doTest(fileName); + } + + @TestMetadata("rethrowExceptionIfNotCaught.kt") + public void testRethrowExceptionIfNotCaught() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/try/rethrowExceptionIfNotCaught.kt"); + doTest(fileName); + } + + @TestMetadata("tryCatchCorrectForSubclasses.kt") + public void testTryCatchCorrectForSubclasses() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/try/tryCatchCorrectForSubclasses.kt"); + doTest(fileName); + } + + @TestMetadata("tryCatchExpr.kt") + public void testTryCatchExpr() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/try/tryCatchExpr.kt"); + doTest(fileName); + } + + @TestMetadata("tryCatchExpressionWithMessage.kt") + public void testTryCatchExpressionWithMessage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/try/tryCatchExpressionWithMessage.kt"); + doTest(fileName); + } + + @TestMetadata("tryCatchThrowable.kt") + public void testTryCatchThrowable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/try/tryCatchThrowable.kt"); + doTest(fileName); + } + + @TestMetadata("tryCatchWithDifferentParameterNames.kt") + public void testTryCatchWithDifferentParameterNames() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/try/tryCatchWithDifferentParameterNames.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/when") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class When extends AbstractBoxJsTest { + public void testAllFilesPresentInWhen() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/when"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("doWhileWithOneStmWhen.kt") + public void testDoWhileWithOneStmWhen() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/doWhileWithOneStmWhen.kt"); + doTest(fileName); + } + + @TestMetadata("empty.kt") + public void testEmpty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/empty.kt"); + doTest(fileName); + } + + @TestMetadata("forWithOneStmWhen.kt") + public void testForWithOneStmWhen() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/forWithOneStmWhen.kt"); + doTest(fileName); + } + + @TestMetadata("ifInWhen.kt") + public void testIfInWhen() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/ifInWhen.kt"); + doTest(fileName); + } + + @TestMetadata("ifInWhenDanglingElseIssue.kt") + public void testIfInWhenDanglingElseIssue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/ifInWhenDanglingElseIssue.kt"); + doTest(fileName); + } + + @TestMetadata("ifWithOneStmWhen.kt") + public void testIfWithOneStmWhen() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/ifWithOneStmWhen.kt"); + doTest(fileName); + } + + @TestMetadata("kt1665.kt") + public void testKt1665() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/kt1665.kt"); + doTest(fileName); + } + + @TestMetadata("matchNullableType.kt") + public void testMatchNullableType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/matchNullableType.kt"); + doTest(fileName); + } + + @TestMetadata("multipleCases.kt") + public void testMultipleCases() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/multipleCases.kt"); + doTest(fileName); + } + + @TestMetadata("whenAsExpression.kt") + public void testWhenAsExpression() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenAsExpression.kt"); + doTest(fileName); + } + + @TestMetadata("whenAsExpressionWithThrow.kt") + public void testWhenAsExpressionWithThrow() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenAsExpressionWithThrow.kt"); + doTest(fileName); + } + + @TestMetadata("whenConditionWithReturn.kt") + public void testWhenConditionWithReturn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenConditionWithReturn.kt"); + doTest(fileName); + } + + @TestMetadata("whenEqualsPattern.kt") + public void testWhenEqualsPattern() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenEqualsPattern.kt"); + doTest(fileName); + } + + @TestMetadata("whenEvaluatesArgumentOnlyOnce.kt") + public void testWhenEvaluatesArgumentOnlyOnce() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenEvaluatesArgumentOnlyOnce.kt"); + doTest(fileName); + } + + @TestMetadata("whenExecutesOnlyOnce.kt") + public void testWhenExecutesOnlyOnce() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenExecutesOnlyOnce.kt"); + doTest(fileName); + } + + @TestMetadata("whenNotType.kt") + public void testWhenNotType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenNotType.kt"); + doTest(fileName); + } + + @TestMetadata("whenStatementWithRangeClause.kt") + public void testWhenStatementWithRangeClause() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenStatementWithRangeClause.kt"); + doTest(fileName); + } + + @TestMetadata("whenType.kt") + public void testWhenType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenType.kt"); + doTest(fileName); + } + + @TestMetadata("whenValue.kt") + public void testWhenValue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenValue.kt"); + doTest(fileName); + } + + @TestMetadata("whenValueOrType.kt") + public void testWhenValueOrType() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenValueOrType.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithCharRangeClause.kt") + public void testWhenWithCharRangeClause() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenWithCharRangeClause.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithCustomRangeClause.kt") + public void testWhenWithCustomRangeClause() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenWithCustomRangeClause.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithIf.kt") + public void testWhenWithIf() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenWithIf.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithIfConditionAndOnlyElse.kt") + public void testWhenWithIfConditionAndOnlyElse() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenWithIfConditionAndOnlyElse.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithLongRangeClause.kt") + public void testWhenWithLongRangeClause() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenWithLongRangeClause.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithOneStmWhen.kt") + public void testWhenWithOneStmWhen() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenWithOneStmWhen.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithOnlyElse.kt") + public void testWhenWithOnlyElse() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenWithOnlyElse.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithRangeClause.kt") + public void testWhenWithRangeClause() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenWithRangeClause.kt"); + doTest(fileName); + } + + @TestMetadata("whenWithoutExpression.kt") + public void testWhenWithoutExpression() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whenWithoutExpression.kt"); + doTest(fileName); + } + + @TestMetadata("whileWithOneStmWhen.kt") + public void testWhileWithOneStmWhen() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/when/whileWithOneStmWhen.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/expression/while") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class While extends AbstractBoxJsTest { + public void testAllFilesPresentInWhile() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/while"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("doWhileWithComplexCondition.kt") + public void testDoWhileWithComplexCondition() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/while/doWhileWithComplexCondition.kt"); + doTest(fileName); + } + + @TestMetadata("doWhileWithComplexConditionAndContinue.kt") + public void testDoWhileWithComplexConditionAndContinue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/while/doWhileWithComplexConditionAndContinue.kt"); + doTest(fileName); + } + + @TestMetadata("whileWithComplexCondition.kt") + public void testWhileWithComplexCondition() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/while/whileWithComplexCondition.kt"); + doTest(fileName); + } + + @TestMetadata("whileWithComplexConditionAndContinue.kt") + public void testWhileWithComplexConditionAndContinue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/while/whileWithComplexConditionAndContinue.kt"); + doTest(fileName); + } + + @TestMetadata("whileWithComplexOneStatement.kt") + public void testWhileWithComplexOneStatement() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/while/whileWithComplexOneStatement.kt"); + doTest(fileName); + } + } + } + @TestMetadata("js/js.translator/testData/box/extensionFunction") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CastTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CastTestGenerated.java deleted file mode 100644 index cd712f9e415..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CastTestGenerated.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -import com.intellij.testFramework.TestDataPath; -import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; -import org.jetbrains.kotlin.test.KotlinTestUtils; -import org.jetbrains.kotlin.test.TestMetadata; -import org.junit.runner.RunWith; - -import java.io.File; -import java.util.regex.Pattern; - -/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ -@SuppressWarnings("all") -@TestMetadata("js/js.translator/testData/expression/cast/cases") -@TestDataPath("$PROJECT_ROOT") -@RunWith(JUnit3RunnerWithInners.class) -public class CastTestGenerated extends AbstractCastTest { - public void testAllFilesPresentInCases() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/expression/cast/cases"), Pattern.compile("^(.+)\\.kt$"), true); - } - - @TestMetadata("castExtensionToKMutableProperty.kt") - public void testCastExtensionToKMutableProperty() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castExtensionToKMutableProperty.kt"); - doTest(fileName); - } - - @TestMetadata("castExtensionToKProperty1.kt") - public void testCastExtensionToKProperty1() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castExtensionToKProperty1.kt"); - doTest(fileName); - } - - @TestMetadata("castToAny.kt") - public void testCastToAny() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToAny.kt"); - doTest(fileName); - } - - @TestMetadata("castToArray.kt") - public void testCastToArray() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToArray.kt"); - doTest(fileName); - } - - @TestMetadata("castToFunction.kt") - public void testCastToFunction() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToFunction.kt"); - doTest(fileName); - } - - @TestMetadata("castToGenericType.kt") - public void testCastToGenericType() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToGenericType.kt"); - doTest(fileName); - } - - @TestMetadata("castToGenericTypeWithMultipleUpperBounds.kt") - public void testCastToGenericTypeWithMultipleUpperBounds() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToGenericTypeWithMultipleUpperBounds.kt"); - doTest(fileName); - } - - @TestMetadata("castToGenericTypeWithUpperBound.kt") - public void testCastToGenericTypeWithUpperBound() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToGenericTypeWithUpperBound.kt"); - doTest(fileName); - } - - @TestMetadata("castToKMutableProperty0.kt") - public void testCastToKMutableProperty0() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToKMutableProperty0.kt"); - doTest(fileName); - } - - @TestMetadata("castToKMutableProperty1.kt") - public void testCastToKMutableProperty1() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToKMutableProperty1.kt"); - doTest(fileName); - } - - @TestMetadata("castToKProperty0.kt") - public void testCastToKProperty0() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToKProperty0.kt"); - doTest(fileName); - } - - @TestMetadata("castToKProperty1.kt") - public void testCastToKProperty1() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToKProperty1.kt"); - doTest(fileName); - } - - @TestMetadata("castToNotNull.kt") - public void testCastToNotNull() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToNotNull.kt"); - doTest(fileName); - } - - @TestMetadata("castToNullable.kt") - public void testCastToNullable() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/castToNullable.kt"); - doTest(fileName); - } - - @TestMetadata("implicitCastToLong.kt") - public void testImplicitCastToLong() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/implicitCastToLong.kt"); - doTest(fileName); - } - - @TestMetadata("noRuntimeTypeCheck.kt") - public void testNoRuntimeTypeCheck() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/noRuntimeTypeCheck.kt"); - doTest(fileName); - } - - @TestMetadata("primitiveToClass.kt") - public void testPrimitiveToClass() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/primitiveToClass.kt"); - doTest(fileName); - } - - @TestMetadata("reifiedToNotNull.kt") - public void testReifiedToNotNull() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/reifiedToNotNull.kt"); - doTest(fileName); - } - - @TestMetadata("reifiedToNullable1.kt") - public void testReifiedToNullable1() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/reifiedToNullable1.kt"); - doTest(fileName); - } - - @TestMetadata("reifiedToNullable2.kt") - public void testReifiedToNullable2() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/reifiedToNullable2.kt"); - doTest(fileName); - } - - @TestMetadata("safeCastToGenericTypeWithUpperBound.kt") - public void testSafeCastToGenericTypeWithUpperBound() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/safeCastToGenericTypeWithUpperBound.kt"); - doTest(fileName); - } - - @TestMetadata("safeCastToNotNull.kt") - public void testSafeCastToNotNull() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/safeCastToNotNull.kt"); - doTest(fileName); - } - - @TestMetadata("safeCastToNullable.kt") - public void testSafeCastToNullable() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/safeCastToNullable.kt"); - doTest(fileName); - } - - @TestMetadata("safeCastToReifiedNotNull.kt") - public void testSafeCastToReifiedNotNull() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/safeCastToReifiedNotNull.kt"); - doTest(fileName); - } - - @TestMetadata("safeCastToReifiedNullable.kt") - public void testSafeCastToReifiedNullable() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/safeCastToReifiedNullable.kt"); - doTest(fileName); - } - - @TestMetadata("smartCastInExtensionFunction.kt") - public void testSmartCastInExtensionFunction() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/smartCastInExtensionFunction.kt"); - doTest(fileName); - } - - @TestMetadata("smartCastInFunction.kt") - public void testSmartCastInFunction() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/smartCastInFunction.kt"); - doTest(fileName); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CompareToTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CompareToTest.java deleted file mode 100644 index 8712a57444a..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CompareToTest.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public final class CompareToTest extends AbstractExpressionTest { - - public CompareToTest() { - super("compareTo/"); - } - - public void testCustomCompareToMethod() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/DollarParameterTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/DollarParameterTest.java deleted file mode 100644 index cd1f1953121..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/DollarParameterTest.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public final class DollarParameterTest extends AbstractExpressionTest { - - public DollarParameterTest() { - super("dollarParameter/"); - } - - public void testDollarParameter() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/DynamicTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/DynamicTestGenerated.java deleted file mode 100644 index 27ea4879a5a..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/DynamicTestGenerated.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -import com.intellij.testFramework.TestDataPath; -import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; -import org.jetbrains.kotlin.test.KotlinTestUtils; -import org.jetbrains.kotlin.test.TestMetadata; -import org.junit.runner.RunWith; - -import java.io.File; -import java.util.regex.Pattern; - -/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ -@SuppressWarnings("all") -@TestMetadata("js/js.translator/testData/dynamic/cases") -@TestDataPath("$PROJECT_ROOT") -@RunWith(JUnit3RunnerWithInners.class) -public class DynamicTestGenerated extends AbstractDynamicTest { - public void testAllFilesPresentInCases() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/dynamic/cases"), Pattern.compile("^(.+)\\.kt$"), true); - } - - @TestMetadata("binaryOperations.kt") - public void testBinaryOperations() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/binaryOperations.kt"); - doTest(fileName); - } - - @TestMetadata("callGetMethod.kt") - public void testCallGetMethod() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/callGetMethod.kt"); - doTest(fileName); - } - - @TestMetadata("callMethods.kt") - public void testCallMethods() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/callMethods.kt"); - doTest(fileName); - } - - @TestMetadata("callSetMethod.kt") - public void testCallSetMethod() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/callSetMethod.kt"); - doTest(fileName); - } - - @TestMetadata("compareTo.kt") - public void testCompareTo() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/compareTo.kt"); - doTest(fileName); - } - - @TestMetadata("equals.kt") - public void testEquals() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/equals.kt"); - doTest(fileName); - } - - @TestMetadata("getByBrackets.kt") - public void testGetByBrackets() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/getByBrackets.kt"); - doTest(fileName); - } - - @TestMetadata("identityEquals.kt") - public void testIdentityEquals() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/identityEquals.kt"); - doTest(fileName); - } - - @TestMetadata("in.kt") - public void testIn() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/in.kt"); - doTest(fileName); - } - - @TestMetadata("incrementAndDecrement.kt") - public void testIncrementAndDecrement() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/incrementAndDecrement.kt"); - doTest(fileName); - } - - @TestMetadata("infixCall.kt") - public void testInfixCall() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/infixCall.kt"); - doTest(fileName); - } - - @TestMetadata("invoke.kt") - public void testInvoke() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/invoke.kt"); - doTest(fileName); - } - - @TestMetadata("is.kt") - public void testIs() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/is.kt"); - doTest(fileName); - } - - @TestMetadata("isJsPrimitiveType.kt") - public void testIsJsPrimitiveType() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/isJsPrimitiveType.kt"); - doTest(fileName); - } - - @TestMetadata("iterator.kt") - public void testIterator() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/iterator.kt"); - doTest(fileName); - } - - @TestMetadata("nameClashing.kt") - public void testNameClashing() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/nameClashing.kt"); - doTest(fileName); - } - - @TestMetadata("operationsWithAssignment.kt") - public void testOperationsWithAssignment() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/operationsWithAssignment.kt"); - doTest(fileName); - } - - @TestMetadata("propertyAccess.kt") - public void testPropertyAccess() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/propertyAccess.kt"); - doTest(fileName); - } - - @TestMetadata("setByBrackets.kt") - public void testSetByBrackets() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/setByBrackets.kt"); - doTest(fileName); - } - - @TestMetadata("unaryOperations.kt") - public void testUnaryOperations() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/dynamic/cases/unaryOperations.kt"); - doTest(fileName); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/EqualsTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/EqualsTest.java deleted file mode 100644 index b2bb4d6cc95..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/EqualsTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public final class EqualsTest extends AbstractExpressionTest { - - public EqualsTest() { - super("equals/"); - } - - public void testCustomEqualsMethodOnAny() throws Exception { - fooBoxTest(); - } - - public void testCustomEqualsMethod() throws Exception { - fooBoxTest(); - } - - public void testExplicitEqualsMethod() throws Exception { - fooBoxTest(); - } - - public void testExplicitEqualsMethodForPrimitives() throws Exception { - fooBoxTest(); - } - - public void testStringsEqual() throws Exception { - fooBoxTest(); - } - - public void testKt2370() throws Exception { - fooBoxTest(); - } - - public void testEqualsNullOrUndefined() throws Exception { - checkFooBoxIsOk(); - } - - public void testCompareNullableListWithNull() throws Exception { - checkFooBoxIsOk(); - } - - public void testCompareToNullWithCustomEquals() throws Exception { - checkFooBoxIsOk(); - } - - public void testCompareNullablesWithCustomEquals() throws Exception { - checkFooBoxIsOk(); - } - - public void testEqualsBehaviorOnNull() throws Exception { - checkFooBoxIsOk(); - } - - public void testSuperEquals() throws Exception { - checkFooBoxIsOk(); - } - - public void testArrays() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/EvaluationOrderTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/EvaluationOrderTest.java deleted file mode 100644 index 82bd0e5fe23..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/EvaluationOrderTest.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public class EvaluationOrderTest extends AbstractExpressionTest { - public EvaluationOrderTest() { - super("evaluationOrder/"); - } - - public void test2dangerousInExpression() throws Exception { - fooBoxTest(); - } - - public void testAndAndWithSideEffect() throws Exception { - checkFooBoxIsOk(); - } - - public void testOrOrWithSideEffect() throws Exception { - checkFooBoxIsOk(); - } - - public void testAssignToDotQualifiedWithSideEffect() throws Exception { - checkFooBoxIsOk(); - } - - public void testAssignToArrayElementWithSideEffect() throws Exception { - checkFooBoxIsOk(); - } - - public void testCallArgs() throws Exception { - checkFooBoxIsOk(); - } - - public void testCallVarargs() throws Exception { - checkFooBoxIsOk(); - } - - public void testCompareToIntrinsicWithSideEffect() throws Exception { - checkFooBoxIsOk(); - } - - public void testDangerousInsideDangerous() throws Exception { - fooBoxTest(); - } - - public void testDangerousInline() throws Exception { - fooBoxTest(); - } - - public void testElvisComplex() throws Exception { - checkFooBoxIsOk(); - } - - public void testEvaluationOrder1() throws Exception { - fooBoxTest(); - } - - public void testEqualsIntrinsicWithSideEffect() throws Exception { - checkFooBoxIsOk(); - } - - public void testEvaluationOrder2() throws Exception { - checkFooBoxIsOk(); - } - - public void testIfAsFunArgument() throws Exception { - fooBoxTest(); - } - - public void testIfAsPlusArgument() throws Exception { - fooBoxTest(); - } - - public void testIfWithComplex() throws Exception { - checkFooBoxIsOk(); - } - - public void testIntrinsicComplex() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenAsMinusArgument() throws Exception { - fooBoxTest(); - } - - public void testWhenWithComplexConditions() throws Exception { - checkFooBoxIsOk(); - } - - public void testElvisWithBreakContinueReturn() throws Exception { - checkFooBoxIsOk(); - } - - public void testAndAndWithBreakContinueReturn() throws Exception { - checkFooBoxIsOk(); - } - - public void testOrOrWithBreakContinueReturn() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenJsLiteralWithSideEffect() throws Exception { - checkFooBoxIsOk(); - } - - public void testLiteralFunctionAsArgumentWithSideEffect() throws Exception { - checkFooBoxIsOk(); - } - - public void testIntrinsicWithBreakContinueReturn() throws Exception { - checkFooBoxIsOk(); - } - - public void testCallWithBreakContinueReturn() throws Exception { - checkFooBoxIsOk(); - } - - public void testLoopWithBreakContinueReturnInCondition() throws Exception { - checkFooBoxIsOk(); - } - - public void testCastWithBreakContinueReturn() throws Exception { - checkFooBoxIsOk(); - } - - public void testReassignmentLhsCaching() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/ForeachTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/ForeachTest.java deleted file mode 100644 index d016cbc45b7..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/ForeachTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public final class ForeachTest extends AbstractExpressionTest { - - public ForeachTest() { - super("for/"); - } - - public void testForIteratesOverArray() throws Exception { - fooBoxTest(); - } - - public void testForOnEmptyArray() throws Exception { - fooBoxTest(); - } - - public void testLabeledFor() throws Exception { - fooBoxTest(); - } - - public void testLabeledForWithContinue() throws Exception { - checkFooBoxIsOk(); - } - - public void testForWithComplexOneStatement() throws Exception { - checkFooBoxIsOk(); - } - - public void testForIteratesOverLiteralRange() throws Exception { - checkFooBoxIsOk(); - } - - public void testForIteratesOverNonLiteralRange() throws Exception { - checkFooBoxIsOk(); - } - - public void testForIteratesOverSomethingWithIterator() throws Exception { - checkFooBoxIsOk(); - } - - public void testLabeledForWithWhile() throws Exception { - checkFooBoxIsOk(); - } - - public void testForWithEmptyBody() throws Exception { - checkFooBoxIsOk(); - } - - public void testForWithSideEffectImElementAccessAndWithEmptyBody() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/FunctionTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/FunctionTest.java deleted file mode 100644 index b759f920f49..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/FunctionTest.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public class FunctionTest extends AbstractExpressionTest { - - public FunctionTest() { - super("function/"); - } - - public void testFunctionUsedBeforeDeclaration() throws Exception { - fooBoxTest(); - } - - public void testFunctionWithTwoParametersCall() throws Exception { - fooBoxTest(); - } - - public void testWhenFunction() throws Exception { - checkFooBoxIsOk(); - } - - public void testFunctionLiteral() throws Exception { - fooBoxTest(); - } - - public void testAdderClosure() throws Exception { - fooBoxTest(); - } - - public void testLoopClosure() throws Exception { - fooBoxTest(); - } - - public void testFunctionLiteralAsParameter() throws Exception { - fooBoxTest(); - } - - public void testClosureWithParameter() throws Exception { - checkFooBoxIsOk(); - } - - public void testClosureWithParameterAndBoxing() throws Exception { - checkFooBoxIsOk(); - } - - public void testEnclosingThis() throws Exception { - checkFooBoxIsOk(); - } - - public void testImplicitItParameter() throws Exception { - fooBoxTest(); - } - - public void testDefaultParameters() throws Exception { - fooBoxTest(); - } - - public void testFunctionLiteralAsLastParameter() throws Exception { - fooBoxTest(); - } - - public void testNamedArguments() throws Exception { - fooBoxTest(); - } - - public void testFunctionExpression() throws Exception { - checkFooBoxIsOk(); - } - - public void testExpressionAsFunction() throws Exception { - fooBoxTest(); - } - - public void testExpressionAsExtFunction() throws Exception { - checkFooBoxIsOk(); - } - - public void testVararg() throws Exception { - checkFooBoxIsOk(); - } - - public void testKT921() throws Exception { - - checkOutput("KT-921.kt", "1, end\n" + - "1, 2, end\n" + - "1, 2, 3, end\n" + - "2, 3, end\n" + - "!\n" + - "3, end\n" + - "!\n" + - "end\n" + - "!"); - } - - public void testFunctionInsideFunction() throws Exception { - fooBoxTest(); - } - - public void testCallFunInInit() throws Exception { - fooBoxTest(); - } - - public void testMangling() throws Exception { - checkFooBoxIsOk(); - } - - public void testManglingStability() throws Exception { - checkFooBoxIsOk(); - } - - public void testOverloadingWithInheritance() throws Exception { - checkFooBoxIsOk(); - } - - public void testOverloadOverridenFun() throws Exception { - checkFooBoxIsOk(); - } - - public void testOverloadClassConstructorByFactoryMethod() throws Exception { - checkFooBoxIsOk(); - } - - public void testManglingAnyMethods() throws Exception { - checkFooBoxIsOk(); - } - - public void testManglingClashWithFunctionsWithoutParameters() throws Exception { - checkFooBoxIsOk(); - } - - public void testLocalExtFunction() throws Exception { - checkFooBoxIsOk(); - } - - public void testLambdaOrLocalFunInsideEnumMethod() throws Exception { - checkFooBoxIsOk(); - } - - public void testManglingClashFunctionsAndClasses() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IdentifierClashTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IdentifierClashTest.java deleted file mode 100644 index ddcf2feb66e..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IdentifierClashTest.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public final class IdentifierClashTest extends AbstractExpressionTest { - - public IdentifierClashTest() { - super("identifierClash/"); - } - - public void testUseVariableOfNameOfFunction() throws Exception { - fooBoxTest(); - } - - public void testOverloadedFun() throws Exception { - fooBoxTest(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IdentityEqualsTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IdentityEqualsTest.java deleted file mode 100644 index d26f874cec8..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IdentityEqualsTest.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public class IdentityEqualsTest extends AbstractExpressionTest { - public IdentityEqualsTest() { - super("identityEquals/"); - } - - public void testIdentityEqualsMethod() throws Exception { - checkFooBoxIsOk(); - } - - public void testIdentityEqualsMethodForPrimitives() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IfExpressionTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IfExpressionTest.java deleted file mode 100644 index 7ab3d566226..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IfExpressionTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -import org.mozilla.javascript.JavaScriptException; - -public class IfExpressionTest extends AbstractExpressionTest { - - public IfExpressionTest() { - super("if/"); - } - - public void testIfElseAsExpressionWithThrow() throws Exception { - try { - fooBoxTest(); - fail(); - } - catch (JavaScriptException e) { - // Ignored - } - } - - public void testIfInsideLambda() throws Exception { - checkFooBoxIsOk(); - } - - public void testNestedIf() throws Exception { - checkFooBoxIsOk(); - } - - public void testWithEmptyBlocks() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InvokeConventionTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InvokeConventionTest.java deleted file mode 100644 index 85a85751b9d..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InvokeConventionTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public final class InvokeConventionTest extends AbstractExpressionTest { - - public InvokeConventionTest() { - super("invoke/"); - } - - public void testInvokeMethod() throws Exception { - checkFooBoxIsOk(); - } - - public void testExplicitInvokeLambda() throws Exception { - checkFooBoxIsOk(); - } - - public void testInvokeOnExprByConvention() throws Exception { - checkFooBoxIsOk(); - } - - public void testInvokeInExtensionFunctionLiteral() throws Exception { - fooBoxTest(); - } - - public void testInvokeInFunctionLiteral() throws Exception { - fooBoxTest(); - } - - public void testInvokeWithExtensionReceiver() throws Exception { - fooBoxTest(); - } - - public void testInvokeWithDispatchReceiver() throws Exception { - fooBoxTest(); - } - - public void testInvokeWithDispatchAndExtensionReceivers() throws Exception { - fooBoxTest(); - } - - public void testInheritFromFunctionTraits() throws Exception { - checkFooBoxIsOk(); - } - - public void testInvokeWithImplicitDispatchReceiverAndExtensionReceiver() throws Exception { - checkFooBoxIsOk(); - } - - public void testExtensionInvoke() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/MiscTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/MiscTest.java deleted file mode 100644 index a6a155da5df..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/MiscTest.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -import org.jetbrains.kotlin.js.translate.context.Namer; -import org.mozilla.javascript.JavaScriptException; - -/** - * A messy class where all new tests go before they are sorted which never happens. - */ -public final class MiscTest extends AbstractExpressionTest { - - public MiscTest() { - super("misc/"); - } - - public void testLocalProperty() throws Exception { - checkFooBoxIsOk(); - } - - public void testIntRange() throws Exception { - fooBoxTest(); - } - - public void testSafeCallComputesExpressionOnlyOnce() throws Exception { - fooBoxTest(); - } - - public void testClassWithoutPackage() throws Exception { - runFunctionOutputTest("classWithoutPackage.kt", Namer.getRootPackageName(), TEST_FUNCTION, true); - } - - public void testKt1052_2() throws Exception { - checkFooBoxIsTrue("KT-1052-2.kt"); - } - - public void testKt2314() throws Exception { - checkFooBoxIsTrue("KT-2314.kt"); - } - - public void testKt1052() throws Exception { - checkOutput("KT-1052.kt", "true\n"); - } - - public void testKt9443() throws Exception { - checkFooBoxIsOk("kt9443.kt"); - } - - public void testKt740_1() throws Exception { - checkFooBoxIsTrue("KT-740.kt"); - } - - public void testKt740_2() throws Exception { - checkFooBoxIsOk("KT-740-2.kt"); - } - - public void testKt1361_1() throws Exception { - checkFooBoxIsTrue("KT-1361-1.kt"); - } - - public void testKt1361_2() throws Exception { - checkFooBoxIsTrue("KT-1361-2.kt"); - } - - public void testKt817() throws Exception { - checkFooBoxIsTrue("KT-817.kt"); - } - - public void testKt740_3() throws Exception { - checkFooBoxIsOk("KT-740-3.kt"); - } - - public void testFunInConstructor() throws Exception { - fooBoxTest(); - } - - public void testFunInConstructorBlock() throws Exception { - fooBoxTest(); - } - - public void testPropertyAsFunCalledOnConstructor() throws Exception { - fooBoxTest(); - } - - public void testPackagePropertyCalledAsFun() throws Exception { - fooBoxTest(); - } - - public void testExtensionLiteralCreatedAtPackageLevel() throws Exception { - fooBoxTest(); - } - - public void testTemporaryVariableCreatedInPackageInitializer() throws Exception { - fooBoxTest(); - } - - public void testWhenReturnedWithoutBlock() throws Exception { - fooBoxTest(); - } - - public void testElvis() throws Exception { - fooBoxTest(); - } - - public void testElvisReturnSimple() throws Exception { - checkFooBoxIsOk(); - } - - public void testElvisReturnNested() throws Exception { - checkFooBoxIsOk(); - } - - public void testElvisWithThrow() throws Exception { - checkFooBoxIsOk(); - } - - public void testExtensionLiteralCalledInsideExtensionFunction() throws Exception { - fooBoxTest(); - } - - public void testKt1865() throws Exception { - checkFooBoxIsTrue("KT-1865.kt"); - } - - public void testMainFunInNestedPackage() throws Exception { - checkOutput("mainFunInNestedPackage.kt", "ayee"); - } - - public void testPropertiesWithExplicitlyDefinedAccessorsWithoutBodies() throws Exception { - fooBoxTest(); - } - - public void testExclExcl() throws Exception { - fooBoxTest(); - } - - public void testExclExclResultIsComputedOnce() throws Exception { - fooBoxTest(); - } - - public void testPackageLevelVarInPackage() throws Exception { - checkFooBoxIsOk(); - } - - public void testPackageLevelVarInRoot() throws Exception { - runFunctionOutputTest("packageLevelVarInRoot.kt", Namer.getRootPackageName(), TEST_FUNCTION, "OK"); - } - - public void testLazyPropertyGetterNotCalledOnStart() throws Exception { - checkOutput("lazyProperty.kt", "Hello, world! Gotcha 3"); - } - - public void testLocalVarAsFunction() throws Exception { - checkFooBoxIsOk(); - } - - public void testExclExclThrows() throws Exception { - try { - fooBoxTest(); - fail(); - } - catch (JavaScriptException e) { - // ignore - } - } - - public void testInheritFromJetIterator() throws Exception { - fooBoxTest(); - } - - public void testStringInterpolationEvaluationOrder() throws Exception { - fooBoxTest(); - } - - public void testKt5058() throws Exception { - checkFooBoxIsTrue("KT-5058.kt"); - } - - public void testRightAssocForGeneratedConditionalOperator() throws Exception { - checkFooBoxIsOk(); - } - - public void testToGeneratorInStdlib() throws Exception { - checkFooBoxIsOk(); - } - - public void testThrowThrow() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/StringTemplatesTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/StringTemplatesTest.java deleted file mode 100644 index d5047f11ba3..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/StringTemplatesTest.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public final class StringTemplatesTest extends AbstractExpressionTest { - - public StringTemplatesTest() { - super("stringTemplates/"); - } - - public void testObjectWithToString() throws Exception { - checkFooBoxIsOk(); - } - - public void testStringValues() throws Exception { - fooBoxTest(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/StringTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/StringTest.java deleted file mode 100644 index cf68410b062..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/StringTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public final class StringTest extends AbstractExpressionTest { - - public StringTest() { - super("string/"); - } - - public void testStringConstant() throws Exception { - fooBoxTest(); - } - - public void testStringAssignment() throws Exception { - fooBoxTest(); - } - - public void testIntInTemplate() throws Exception { - checkFooBoxIsOk(); - } - - public void testStringInTemplate() throws Exception { - checkFooBoxIsOk(); - } - - public void testMultipleExpressionsInTemplate() throws Exception { - checkFooBoxIsOk(); - } - - public void testObjectToStringCallInTemplate() throws Exception { - fooBoxTest(); - } - - public void testStringNotEqualToNumber() throws Exception { - fooBoxTest(); - } - - public void testKt2227() throws Exception { - fooBoxTest(); - } - - public void testKt2227_2() throws Exception { - fooBoxTest(); - } - - public void testNumbersInTemplate() throws Exception { - checkFooBoxIsOk(); - } - - public void testStringSplit() throws Exception { - checkFooBoxIsOk(); - } - - public void testExtensionMethods() throws Exception { - checkFooBoxIsOk(); - } - - public void testNullableTypeInStringTemplate() throws Exception { - checkFooBoxIsOk(); - } - - public void testSubSequence() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/TryCatchTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/TryCatchTest.java deleted file mode 100644 index 6313aacb1ce..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/TryCatchTest.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public class TryCatchTest extends AbstractExpressionTest { - - public TryCatchTest() { - super("try/"); - } - - public void testTryCatchExpr() throws Exception { - checkFooBoxIsOk(); - } - - public void testTryCatchThrowable() throws Exception { - checkFooBoxIsOk(); - } - - public void testTryCatchCorrectForSubclasses() throws Exception { - checkFooBoxIsOk(); - } - - public void testTryCatchExpressionWithMessage() throws Exception { - checkFooBoxIsOk(); - } - - public void testMultipleCatchBlocks() throws Exception { - checkFooBoxIsOk(); - } - - public void testTryCatchWithDifferentParameterNames() throws Exception { - checkFooBoxIsOk(); - } - - public void testRethrowExceptionIfNotCaught() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhenTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhenTest.java deleted file mode 100644 index 8bdfa1127de..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhenTest.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -import org.mozilla.javascript.JavaScriptException; - -public final class WhenTest extends AbstractExpressionTest { - - public WhenTest() { - super("when/"); - } - - public void testWhenType() throws Exception { - fooBoxTest(); - } - - public void testWhenNotType() throws Exception { - fooBoxTest(); - } - - public void testWhenExecutesOnlyOnce() throws Exception { - fooBoxTest(); - } - - public void testWhenEvaluatesArgumentOnlyOnce() throws Exception { - fooBoxTest(); - } - - public void testWhenValue() throws Exception { - fooBoxTest(); - } - - public void testWhenValueOrType() throws Exception { - fooBoxTest(); - } - - public void testWhenWithIf() throws Exception { - fooBoxTest(); - } - - public void testMultipleCases() throws Exception { - checkFooBoxIsOk(); - } - - public void testMatchNullableType() throws Exception { - fooBoxTest(); - } - - public void testWhenAsExpression() throws Exception { - fooBoxTest(); - } - - public void testWhenAsExpressionWithThrow() throws Exception { - try { - fooBoxTest(); - fail(); - } - catch (JavaScriptException e) { - // Ignored - } - } - - public void testKt1665() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenWithoutExpression() throws Exception { - fooBoxTest(); - } - - public void testWhenWithOnlyElse() throws Exception { - fooBoxTest(); - } - - public void testIfInWhen() throws Exception { - checkFooBoxIsOk(); - } - - public void testForWithOneStmWhen() throws Exception { - fooBoxTest(); - } - - public void testWhileWithOneStmWhen() throws Exception { - fooBoxTest(); - } - - public void testDoWhileWithOneStmWhen() throws Exception { - fooBoxTest(); - } - - public void testIfWithOneStmWhen() throws Exception { - fooBoxTest(); - } - - public void testWhenWithOneStmWhen() throws Exception { - fooBoxTest(); - } - - public void testIfInWhenDanglingElseIssue() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenWithRangeClause() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenWithLongRangeClause() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenWithCharRangeClause() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenWithCustomRangeClause() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenStatementWithRangeClause() throws Exception { - checkFooBoxIsOk(); - } - - public void testEmpty() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenEqualsPattern() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenWithIfConditionAndOnlyElse() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhenConditionWithReturn() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhileTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhileTest.java deleted file mode 100644 index 458e611d82d..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhileTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.js.test.semantics; - -public class WhileTest extends AbstractExpressionTest { - - public WhileTest() { - super("while/"); - } - - public void testWhileWithComplexOneStatement() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhileWithComplexCondition() throws Exception { - checkFooBoxIsOk(); - } - - public void testWhileWithComplexConditionAndContinue() throws Exception { - checkFooBoxIsOk(); - } - - public void testDoWhileWithComplexCondition() throws Exception { - checkFooBoxIsOk(); - } - - public void testDoWhileWithComplexConditionAndContinue() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt index d2e13f42dd7..7b56e37e793 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt @@ -45,8 +45,6 @@ abstract class AbstractBridgeTest : BorrowedTest("bridges/") abstract class AbstractCompanionObjectTest : JsBasicBoxTest("objectIntrinsics/") -abstract class AbstractDynamicTest : JsBasicBoxTest("dynamic/") - abstract class AbstractFunctionExpressionTest : JsBasicBoxTest("functionExpression/") abstract class AbstractInlineEvaluationOrderTest : JsBasicBoxTest("inlineEvaluationOrder/") @@ -77,8 +75,6 @@ abstract class AbstractNonLocalReturnsTest : JsBasicBoxTest("inline.generated/no abstract class AbstractRttiTest : JsBasicBoxTest("rtti/") -abstract class AbstractCastTest : JsBasicBoxTest("expression/cast/") - abstract class AbstractLightReflectionTest : JsBasicBoxTest("reflection/light/") abstract class AbstractTypeAliasesTests : JsBasicBoxTest("typealiases/") \ No newline at end of file diff --git a/js/js.translator/testData/dynamic/_commonFiles/common.js b/js/js.translator/testData/box/dynamic/_common.js similarity index 100% rename from js/js.translator/testData/dynamic/_commonFiles/common.js rename to js/js.translator/testData/box/dynamic/_common.js diff --git a/js/js.translator/testData/dynamic/_commonFiles/common.kt b/js/js.translator/testData/box/dynamic/_common.kt similarity index 100% rename from js/js.translator/testData/dynamic/_commonFiles/common.kt rename to js/js.translator/testData/box/dynamic/_common.kt diff --git a/js/js.translator/testData/dynamic/cases/binaryOperations.kt b/js/js.translator/testData/box/dynamic/binaryOperations.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/binaryOperations.kt rename to js/js.translator/testData/box/dynamic/binaryOperations.kt diff --git a/js/js.translator/testData/dynamic/cases/callGetMethod.kt b/js/js.translator/testData/box/dynamic/callGetMethod.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/callGetMethod.kt rename to js/js.translator/testData/box/dynamic/callGetMethod.kt diff --git a/js/js.translator/testData/dynamic/cases/callMethods.kt b/js/js.translator/testData/box/dynamic/callMethods.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/callMethods.kt rename to js/js.translator/testData/box/dynamic/callMethods.kt diff --git a/js/js.translator/testData/dynamic/cases/callSetMethod.kt b/js/js.translator/testData/box/dynamic/callSetMethod.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/callSetMethod.kt rename to js/js.translator/testData/box/dynamic/callSetMethod.kt diff --git a/js/js.translator/testData/dynamic/cases/compareTo.kt b/js/js.translator/testData/box/dynamic/compareTo.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/compareTo.kt rename to js/js.translator/testData/box/dynamic/compareTo.kt diff --git a/js/js.translator/testData/dynamic/cases/equals.kt b/js/js.translator/testData/box/dynamic/equals.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/equals.kt rename to js/js.translator/testData/box/dynamic/equals.kt diff --git a/js/js.translator/testData/dynamic/cases/getByBrackets.kt b/js/js.translator/testData/box/dynamic/getByBrackets.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/getByBrackets.kt rename to js/js.translator/testData/box/dynamic/getByBrackets.kt diff --git a/js/js.translator/testData/dynamic/cases/identityEquals.kt b/js/js.translator/testData/box/dynamic/identityEquals.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/identityEquals.kt rename to js/js.translator/testData/box/dynamic/identityEquals.kt diff --git a/js/js.translator/testData/dynamic/cases/in.kt b/js/js.translator/testData/box/dynamic/in.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/in.kt rename to js/js.translator/testData/box/dynamic/in.kt diff --git a/js/js.translator/testData/dynamic/cases/incrementAndDecrement.kt b/js/js.translator/testData/box/dynamic/incrementAndDecrement.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/incrementAndDecrement.kt rename to js/js.translator/testData/box/dynamic/incrementAndDecrement.kt diff --git a/js/js.translator/testData/dynamic/cases/infixCall.kt b/js/js.translator/testData/box/dynamic/infixCall.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/infixCall.kt rename to js/js.translator/testData/box/dynamic/infixCall.kt diff --git a/js/js.translator/testData/dynamic/cases/invoke.kt b/js/js.translator/testData/box/dynamic/invoke.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/invoke.kt rename to js/js.translator/testData/box/dynamic/invoke.kt diff --git a/js/js.translator/testData/dynamic/cases/is.kt b/js/js.translator/testData/box/dynamic/is.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/is.kt rename to js/js.translator/testData/box/dynamic/is.kt diff --git a/js/js.translator/testData/dynamic/cases/isJsPrimitiveType.kt b/js/js.translator/testData/box/dynamic/isJsPrimitiveType.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/isJsPrimitiveType.kt rename to js/js.translator/testData/box/dynamic/isJsPrimitiveType.kt diff --git a/js/js.translator/testData/dynamic/cases/iterator.kt b/js/js.translator/testData/box/dynamic/iterator.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/iterator.kt rename to js/js.translator/testData/box/dynamic/iterator.kt diff --git a/js/js.translator/testData/dynamic/cases/nameClashing.kt b/js/js.translator/testData/box/dynamic/nameClashing.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/nameClashing.kt rename to js/js.translator/testData/box/dynamic/nameClashing.kt diff --git a/js/js.translator/testData/dynamic/cases/operationsWithAssignment.kt b/js/js.translator/testData/box/dynamic/operationsWithAssignment.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/operationsWithAssignment.kt rename to js/js.translator/testData/box/dynamic/operationsWithAssignment.kt diff --git a/js/js.translator/testData/dynamic/cases/propertyAccess.kt b/js/js.translator/testData/box/dynamic/propertyAccess.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/propertyAccess.kt rename to js/js.translator/testData/box/dynamic/propertyAccess.kt diff --git a/js/js.translator/testData/dynamic/cases/setByBrackets.kt b/js/js.translator/testData/box/dynamic/setByBrackets.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/setByBrackets.kt rename to js/js.translator/testData/box/dynamic/setByBrackets.kt diff --git a/js/js.translator/testData/dynamic/cases/unaryOperations.kt b/js/js.translator/testData/box/dynamic/unaryOperations.kt similarity index 100% rename from js/js.translator/testData/dynamic/cases/unaryOperations.kt rename to js/js.translator/testData/box/dynamic/unaryOperations.kt diff --git a/js/js.translator/testData/expression/cast/_commonFiles/asserts.kt b/js/js.translator/testData/box/expression/cast/_common.kt similarity index 100% rename from js/js.translator/testData/expression/cast/_commonFiles/asserts.kt rename to js/js.translator/testData/box/expression/cast/_common.kt diff --git a/js/js.translator/testData/expression/cast/cases/castExtensionToKMutableProperty.kt b/js/js.translator/testData/box/expression/cast/castExtensionToKMutableProperty.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castExtensionToKMutableProperty.kt rename to js/js.translator/testData/box/expression/cast/castExtensionToKMutableProperty.kt diff --git a/js/js.translator/testData/expression/cast/cases/castExtensionToKProperty1.kt b/js/js.translator/testData/box/expression/cast/castExtensionToKProperty1.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castExtensionToKProperty1.kt rename to js/js.translator/testData/box/expression/cast/castExtensionToKProperty1.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToAny.kt b/js/js.translator/testData/box/expression/cast/castToAny.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToAny.kt rename to js/js.translator/testData/box/expression/cast/castToAny.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToArray.kt b/js/js.translator/testData/box/expression/cast/castToArray.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToArray.kt rename to js/js.translator/testData/box/expression/cast/castToArray.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToFunction.kt b/js/js.translator/testData/box/expression/cast/castToFunction.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToFunction.kt rename to js/js.translator/testData/box/expression/cast/castToFunction.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToGenericType.kt b/js/js.translator/testData/box/expression/cast/castToGenericType.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToGenericType.kt rename to js/js.translator/testData/box/expression/cast/castToGenericType.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToGenericTypeWithMultipleUpperBounds.kt b/js/js.translator/testData/box/expression/cast/castToGenericTypeWithMultipleUpperBounds.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToGenericTypeWithMultipleUpperBounds.kt rename to js/js.translator/testData/box/expression/cast/castToGenericTypeWithMultipleUpperBounds.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToGenericTypeWithUpperBound.kt b/js/js.translator/testData/box/expression/cast/castToGenericTypeWithUpperBound.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToGenericTypeWithUpperBound.kt rename to js/js.translator/testData/box/expression/cast/castToGenericTypeWithUpperBound.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToKMutableProperty0.kt b/js/js.translator/testData/box/expression/cast/castToKMutableProperty0.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToKMutableProperty0.kt rename to js/js.translator/testData/box/expression/cast/castToKMutableProperty0.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToKMutableProperty1.kt b/js/js.translator/testData/box/expression/cast/castToKMutableProperty1.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToKMutableProperty1.kt rename to js/js.translator/testData/box/expression/cast/castToKMutableProperty1.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToKProperty0.kt b/js/js.translator/testData/box/expression/cast/castToKProperty0.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToKProperty0.kt rename to js/js.translator/testData/box/expression/cast/castToKProperty0.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToKProperty1.kt b/js/js.translator/testData/box/expression/cast/castToKProperty1.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToKProperty1.kt rename to js/js.translator/testData/box/expression/cast/castToKProperty1.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToNotNull.kt b/js/js.translator/testData/box/expression/cast/castToNotNull.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToNotNull.kt rename to js/js.translator/testData/box/expression/cast/castToNotNull.kt diff --git a/js/js.translator/testData/expression/cast/cases/castToNullable.kt b/js/js.translator/testData/box/expression/cast/castToNullable.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/castToNullable.kt rename to js/js.translator/testData/box/expression/cast/castToNullable.kt diff --git a/js/js.translator/testData/expression/cast/cases/implicitCastToLong.kt b/js/js.translator/testData/box/expression/cast/implicitCastToLong.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/implicitCastToLong.kt rename to js/js.translator/testData/box/expression/cast/implicitCastToLong.kt diff --git a/js/js.translator/testData/expression/cast/cases/noRuntimeTypeCheck.kt b/js/js.translator/testData/box/expression/cast/noRuntimeTypeCheck.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/noRuntimeTypeCheck.kt rename to js/js.translator/testData/box/expression/cast/noRuntimeTypeCheck.kt diff --git a/js/js.translator/testData/expression/cast/cases/primitiveToClass.kt b/js/js.translator/testData/box/expression/cast/primitiveToClass.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/primitiveToClass.kt rename to js/js.translator/testData/box/expression/cast/primitiveToClass.kt diff --git a/js/js.translator/testData/expression/cast/cases/reifiedToNotNull.kt b/js/js.translator/testData/box/expression/cast/reifiedToNotNull.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/reifiedToNotNull.kt rename to js/js.translator/testData/box/expression/cast/reifiedToNotNull.kt diff --git a/js/js.translator/testData/expression/cast/cases/reifiedToNullable1.kt b/js/js.translator/testData/box/expression/cast/reifiedToNullable1.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/reifiedToNullable1.kt rename to js/js.translator/testData/box/expression/cast/reifiedToNullable1.kt diff --git a/js/js.translator/testData/expression/cast/cases/reifiedToNullable2.kt b/js/js.translator/testData/box/expression/cast/reifiedToNullable2.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/reifiedToNullable2.kt rename to js/js.translator/testData/box/expression/cast/reifiedToNullable2.kt diff --git a/js/js.translator/testData/expression/cast/cases/safeCastToGenericTypeWithUpperBound.kt b/js/js.translator/testData/box/expression/cast/safeCastToGenericTypeWithUpperBound.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/safeCastToGenericTypeWithUpperBound.kt rename to js/js.translator/testData/box/expression/cast/safeCastToGenericTypeWithUpperBound.kt diff --git a/js/js.translator/testData/expression/cast/cases/safeCastToNotNull.kt b/js/js.translator/testData/box/expression/cast/safeCastToNotNull.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/safeCastToNotNull.kt rename to js/js.translator/testData/box/expression/cast/safeCastToNotNull.kt diff --git a/js/js.translator/testData/expression/cast/cases/safeCastToNullable.kt b/js/js.translator/testData/box/expression/cast/safeCastToNullable.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/safeCastToNullable.kt rename to js/js.translator/testData/box/expression/cast/safeCastToNullable.kt diff --git a/js/js.translator/testData/expression/cast/cases/safeCastToReifiedNotNull.kt b/js/js.translator/testData/box/expression/cast/safeCastToReifiedNotNull.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/safeCastToReifiedNotNull.kt rename to js/js.translator/testData/box/expression/cast/safeCastToReifiedNotNull.kt diff --git a/js/js.translator/testData/expression/cast/cases/safeCastToReifiedNullable.kt b/js/js.translator/testData/box/expression/cast/safeCastToReifiedNullable.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/safeCastToReifiedNullable.kt rename to js/js.translator/testData/box/expression/cast/safeCastToReifiedNullable.kt diff --git a/js/js.translator/testData/expression/cast/cases/smartCastInExtensionFunction.kt b/js/js.translator/testData/box/expression/cast/smartCastInExtensionFunction.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/smartCastInExtensionFunction.kt rename to js/js.translator/testData/box/expression/cast/smartCastInExtensionFunction.kt diff --git a/js/js.translator/testData/expression/cast/cases/smartCastInFunction.kt b/js/js.translator/testData/box/expression/cast/smartCastInFunction.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/smartCastInFunction.kt rename to js/js.translator/testData/box/expression/cast/smartCastInFunction.kt diff --git a/js/js.translator/testData/expression/compareTo/cases/customCompareToMethod.kt b/js/js.translator/testData/box/expression/compareTo/customCompareToMethod.kt similarity index 100% rename from js/js.translator/testData/expression/compareTo/cases/customCompareToMethod.kt rename to js/js.translator/testData/box/expression/compareTo/customCompareToMethod.kt diff --git a/js/js.translator/testData/expression/dollarParameter/cases/dollarParameter.kt b/js/js.translator/testData/box/expression/dollarParameter/dollarParameter.kt similarity index 100% rename from js/js.translator/testData/expression/dollarParameter/cases/dollarParameter.kt rename to js/js.translator/testData/box/expression/dollarParameter/dollarParameter.kt diff --git a/js/js.translator/testData/expression/equals/cases/arrays.kt b/js/js.translator/testData/box/expression/equals/arrays.kt similarity index 100% rename from js/js.translator/testData/expression/equals/cases/arrays.kt rename to js/js.translator/testData/box/expression/equals/arrays.kt diff --git a/js/js.translator/testData/expression/equals/cases/compareNullableListWithNull.kt b/js/js.translator/testData/box/expression/equals/compareNullableListWithNull.kt similarity index 100% rename from js/js.translator/testData/expression/equals/cases/compareNullableListWithNull.kt rename to js/js.translator/testData/box/expression/equals/compareNullableListWithNull.kt diff --git a/js/js.translator/testData/expression/equals/cases/compareNullablesWithCustomEquals.kt b/js/js.translator/testData/box/expression/equals/compareNullablesWithCustomEquals.kt similarity index 100% rename from js/js.translator/testData/expression/equals/cases/compareNullablesWithCustomEquals.kt rename to js/js.translator/testData/box/expression/equals/compareNullablesWithCustomEquals.kt diff --git a/js/js.translator/testData/expression/equals/cases/compareToNullWithCustomEquals.kt b/js/js.translator/testData/box/expression/equals/compareToNullWithCustomEquals.kt similarity index 100% rename from js/js.translator/testData/expression/equals/cases/compareToNullWithCustomEquals.kt rename to js/js.translator/testData/box/expression/equals/compareToNullWithCustomEquals.kt diff --git a/js/js.translator/testData/expression/equals/cases/customEqualsMethod.kt b/js/js.translator/testData/box/expression/equals/customEqualsMethod.kt similarity index 72% rename from js/js.translator/testData/expression/equals/cases/customEqualsMethod.kt rename to js/js.translator/testData/box/expression/equals/customEqualsMethod.kt index ec5bc1e60f4..6a97d6c836f 100644 --- a/js/js.translator/testData/expression/equals/cases/customEqualsMethod.kt +++ b/js/js.translator/testData/box/expression/equals/customEqualsMethod.kt @@ -13,12 +13,12 @@ fun callEqualsMethod(v1: Foo?, v2: Foo?): Boolean { return v1 == v2 } -fun box(): Boolean { +fun box(): String { val a = Foo("abc") val b = Foo("abc") val c = Foo("def") - if (!callEqualsMethod(a, b)) return false - if (callEqualsMethod(a, c)) return false - return true + if (!callEqualsMethod(a, b)) return "fail1" + if (callEqualsMethod(a, c)) return "fail2" + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/equals/cases/customEqualsMethodOnAny.kt b/js/js.translator/testData/box/expression/equals/customEqualsMethodOnAny.kt similarity index 72% rename from js/js.translator/testData/expression/equals/cases/customEqualsMethodOnAny.kt rename to js/js.translator/testData/box/expression/equals/customEqualsMethodOnAny.kt index f17462afb93..8df8c0aef85 100644 --- a/js/js.translator/testData/expression/equals/cases/customEqualsMethodOnAny.kt +++ b/js/js.translator/testData/box/expression/equals/customEqualsMethodOnAny.kt @@ -13,12 +13,12 @@ fun callEqualsMethod(v1: Any?, v2: Any?): Boolean { return v1 == v2 } -fun box(): Boolean { +fun box(): String { val a = Foo("abc") val b = Foo("abc") val c = Foo("def") - if (!callEqualsMethod(a, b)) return false - if (callEqualsMethod(a, c)) return false - return true + if (!callEqualsMethod(a, b)) return "fail1" + if (callEqualsMethod(a, c)) return "fail2" + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/equals/cases/equalsBehaviorOnNull.kt b/js/js.translator/testData/box/expression/equals/equalsBehaviorOnNull.kt similarity index 100% rename from js/js.translator/testData/expression/equals/cases/equalsBehaviorOnNull.kt rename to js/js.translator/testData/box/expression/equals/equalsBehaviorOnNull.kt diff --git a/js/js.translator/testData/expression/equals/cases/equalsNullOrUndefined.kt b/js/js.translator/testData/box/expression/equals/equalsNullOrUndefined.kt similarity index 100% rename from js/js.translator/testData/expression/equals/cases/equalsNullOrUndefined.kt rename to js/js.translator/testData/box/expression/equals/equalsNullOrUndefined.kt diff --git a/js/js.translator/testData/expression/equals/cases/explicitEqualsMethod.kt b/js/js.translator/testData/box/expression/equals/explicitEqualsMethod.kt similarity index 56% rename from js/js.translator/testData/expression/equals/cases/explicitEqualsMethod.kt rename to js/js.translator/testData/box/expression/equals/explicitEqualsMethod.kt index 2fe7cb3de26..c50ca0c2761 100644 --- a/js/js.translator/testData/expression/equals/cases/explicitEqualsMethod.kt +++ b/js/js.translator/testData/box/expression/equals/explicitEqualsMethod.kt @@ -13,16 +13,16 @@ class Bar() { } -fun box(): Boolean { +fun box(): String { val a = Foo("abc") val b = Foo("abc") val c = Foo("def") - if (!(a.equals(b))) return false - if (a.equals(c)) return false - if (Bar().equals(Bar())) return false + if (!(a.equals(b))) return "fail1" + if (a.equals(c)) return "fail2" + if (Bar().equals(Bar())) return "fail3" val g = Bar() - if (!(g.equals(g))) return false - if (g.equals(Bar())) return false - return true + if (!(g.equals(g))) return "fail4" + if (g.equals(Bar())) return "fail5" + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/equals/explicitEqualsMethodForPrimitives.kt b/js/js.translator/testData/box/expression/equals/explicitEqualsMethodForPrimitives.kt new file mode 100644 index 00000000000..1932a29dba3 --- /dev/null +++ b/js/js.translator/testData/box/expression/equals/explicitEqualsMethodForPrimitives.kt @@ -0,0 +1,21 @@ +package foo + +fun box(): String { + val a = 2 + if (!(a.equals(a))) return "fail1" + if (!(a.equals(2))) return "fail2" + if (!(a.equals(2.0))) return "fail3" + val c = "a" + if (!("a".equals(c))) return "fail4" + if (!((null as Any?)?.equals(null) ?: true)) return "fail5" + val d = 5.6 + if (!(d.toShort().equals(5.toShort()))) return "fail6" + if (!(d.toByte().equals(5.toByte()))) return "fail7" + if (!(d.toFloat().equals(5.6.toFloat()))) return "fail8" + if (!(d.toInt().equals(5))) return "fail9" + if (true.equals(false)) return "fail10" + + val n: Number = 3 + if (!(n.equals(3.3.toInt()))) return "fail11" + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/equals/cases/kt2370.kt b/js/js.translator/testData/box/expression/equals/kt2370.kt similarity index 72% rename from js/js.translator/testData/expression/equals/cases/kt2370.kt rename to js/js.translator/testData/box/expression/equals/kt2370.kt index ea883d43a37..5e0e9b5ea00 100644 --- a/js/js.translator/testData/expression/equals/cases/kt2370.kt +++ b/js/js.translator/testData/box/expression/equals/kt2370.kt @@ -2,12 +2,12 @@ package foo import java.util.* -fun box(): Boolean { +fun box(): String { val data = ArrayList() data.add("foo") data.add("bar") data.add("whatnot") val data2 = ArrayList() data2.addAll(data) - return data.equals(data2) + return if (data.equals(data2)) "OK" else "fail" } diff --git a/js/js.translator/testData/box/expression/equals/stringsEqual.kt b/js/js.translator/testData/box/expression/equals/stringsEqual.kt new file mode 100644 index 00000000000..6557d716460 --- /dev/null +++ b/js/js.translator/testData/box/expression/equals/stringsEqual.kt @@ -0,0 +1,12 @@ +package foo + +fun box(): String { + val a = "abc" + val b = "abc" + val c = "def" + + if (a != b) return "fail1" + if (a == c) return "fail2" + + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/equals/cases/superEquals.kt b/js/js.translator/testData/box/expression/equals/superEquals.kt similarity index 100% rename from js/js.translator/testData/expression/equals/cases/superEquals.kt rename to js/js.translator/testData/box/expression/equals/superEquals.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/2dangerousInExpression.kt b/js/js.translator/testData/box/expression/evaluationOrder/2dangerousInExpression.kt similarity index 66% rename from js/js.translator/testData/expression/evaluationOrder/cases/2dangerousInExpression.kt rename to js/js.translator/testData/box/expression/evaluationOrder/2dangerousInExpression.kt index 33124120660..7532f9536d4 100644 --- a/js/js.translator/testData/expression/evaluationOrder/cases/2dangerousInExpression.kt +++ b/js/js.translator/testData/box/expression/evaluationOrder/2dangerousInExpression.kt @@ -1,23 +1,23 @@ package foo -fun box(): Boolean { +fun box(): String { if (f(0) != -3) { - return false + return "fail1" } if (f(102) != 201) { - return false; + return "fail2" } if (f(103) != 100) { - return false + return "fail3" } if (f(-100) != -100) { - return false + return "fail4" } if (f(-99) != -201) { - return false + return "fail5" } - return true + return "OK" } fun f(i: Int): Int { diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/andAndWithBreakContinueReturn.kt b/js/js.translator/testData/box/expression/evaluationOrder/andAndWithBreakContinueReturn.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/andAndWithBreakContinueReturn.kt rename to js/js.translator/testData/box/expression/evaluationOrder/andAndWithBreakContinueReturn.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/andAndWithSideEffect.kt b/js/js.translator/testData/box/expression/evaluationOrder/andAndWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/andAndWithSideEffect.kt rename to js/js.translator/testData/box/expression/evaluationOrder/andAndWithSideEffect.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/assignToArrayElementWithSideEffect.kt b/js/js.translator/testData/box/expression/evaluationOrder/assignToArrayElementWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/assignToArrayElementWithSideEffect.kt rename to js/js.translator/testData/box/expression/evaluationOrder/assignToArrayElementWithSideEffect.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/assignToDotQualifiedWithSideEffect.kt b/js/js.translator/testData/box/expression/evaluationOrder/assignToDotQualifiedWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/assignToDotQualifiedWithSideEffect.kt rename to js/js.translator/testData/box/expression/evaluationOrder/assignToDotQualifiedWithSideEffect.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/callArgs.kt b/js/js.translator/testData/box/expression/evaluationOrder/callArgs.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/callArgs.kt rename to js/js.translator/testData/box/expression/evaluationOrder/callArgs.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/callVarargs.kt b/js/js.translator/testData/box/expression/evaluationOrder/callVarargs.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/callVarargs.kt rename to js/js.translator/testData/box/expression/evaluationOrder/callVarargs.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/callWithBreakContinueReturn.kt b/js/js.translator/testData/box/expression/evaluationOrder/callWithBreakContinueReturn.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/callWithBreakContinueReturn.kt rename to js/js.translator/testData/box/expression/evaluationOrder/callWithBreakContinueReturn.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/castWithBreakContinueReturn.kt b/js/js.translator/testData/box/expression/evaluationOrder/castWithBreakContinueReturn.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/castWithBreakContinueReturn.kt rename to js/js.translator/testData/box/expression/evaluationOrder/castWithBreakContinueReturn.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/compareToIntrinsicWithSideEffect.kt b/js/js.translator/testData/box/expression/evaluationOrder/compareToIntrinsicWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/compareToIntrinsicWithSideEffect.kt rename to js/js.translator/testData/box/expression/evaluationOrder/compareToIntrinsicWithSideEffect.kt diff --git a/js/js.translator/testData/box/expression/evaluationOrder/dangerousInline.kt b/js/js.translator/testData/box/expression/evaluationOrder/dangerousInline.kt new file mode 100644 index 00000000000..b11e9dd2d9d --- /dev/null +++ b/js/js.translator/testData/box/expression/evaluationOrder/dangerousInline.kt @@ -0,0 +1,9 @@ +package foo + +var i = 0 + +inline fun f() = i * 2 + +fun box(): String { + return if ((++i + f()) == 3) "OK" else "fail" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/dangerousInsideDangerous.kt b/js/js.translator/testData/box/expression/evaluationOrder/dangerousInsideDangerous.kt similarity index 69% rename from js/js.translator/testData/expression/evaluationOrder/cases/dangerousInsideDangerous.kt rename to js/js.translator/testData/box/expression/evaluationOrder/dangerousInsideDangerous.kt index 238710633d1..8c191e5fe01 100644 --- a/js/js.translator/testData/expression/evaluationOrder/cases/dangerousInsideDangerous.kt +++ b/js/js.translator/testData/box/expression/evaluationOrder/dangerousInsideDangerous.kt @@ -1,16 +1,16 @@ package foo -fun box(): Boolean { +fun box(): String { if (f(0) != 201) { - return false + return "fail1" } if (f(1) != 104) { - return false + return "fail2" } if (f(-2) != -100) { - return false + return "fail3" } - return true + return "OK" } fun f(i: Int): Int { diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/elvisComplex.kt b/js/js.translator/testData/box/expression/evaluationOrder/elvisComplex.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/elvisComplex.kt rename to js/js.translator/testData/box/expression/evaluationOrder/elvisComplex.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/elvisWithBreakContinueReturn.kt b/js/js.translator/testData/box/expression/evaluationOrder/elvisWithBreakContinueReturn.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/elvisWithBreakContinueReturn.kt rename to js/js.translator/testData/box/expression/evaluationOrder/elvisWithBreakContinueReturn.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/equalsIntrinsicWithSideEffect.kt b/js/js.translator/testData/box/expression/evaluationOrder/equalsIntrinsicWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/equalsIntrinsicWithSideEffect.kt rename to js/js.translator/testData/box/expression/evaluationOrder/equalsIntrinsicWithSideEffect.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/evaluationOrder1.kt b/js/js.translator/testData/box/expression/evaluationOrder/evaluationOrder1.kt similarity index 58% rename from js/js.translator/testData/expression/evaluationOrder/cases/evaluationOrder1.kt rename to js/js.translator/testData/box/expression/evaluationOrder/evaluationOrder1.kt index 4ec4a9cfae4..7b2896f4320 100644 --- a/js/js.translator/testData/expression/evaluationOrder/cases/evaluationOrder1.kt +++ b/js/js.translator/testData/box/expression/evaluationOrder/evaluationOrder1.kt @@ -7,11 +7,11 @@ fun f(): Int { return d } -fun box(): Boolean { +fun box(): String { d = d-- + f() + when(d) { - -100 -> return true + -100 -> return "OK" 1 -> 1 - else -> return false + else -> return "fail1" } - return false + return "fail2" } diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/evaluationOrder2.kt b/js/js.translator/testData/box/expression/evaluationOrder/evaluationOrder2.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/evaluationOrder2.kt rename to js/js.translator/testData/box/expression/evaluationOrder/evaluationOrder2.kt diff --git a/js/js.translator/testData/box/expression/evaluationOrder/ifAsFunArgument.kt b/js/js.translator/testData/box/expression/evaluationOrder/ifAsFunArgument.kt new file mode 100644 index 00000000000..6c452486ad8 --- /dev/null +++ b/js/js.translator/testData/box/expression/evaluationOrder/ifAsFunArgument.kt @@ -0,0 +1,13 @@ +package foo + +fun box(): String { + var i = 0 + val c = sum(++i, if (i == 0) return "fail1" else i + 2) + if (c != 4) { + return "fail2: $c" + } + return "OK" +} + + +fun sum(a1: Int, a2: Int) = a1 + a2 diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/ifAsPlusArgument.kt b/js/js.translator/testData/box/expression/evaluationOrder/ifAsPlusArgument.kt similarity index 60% rename from js/js.translator/testData/expression/evaluationOrder/cases/ifAsPlusArgument.kt rename to js/js.translator/testData/box/expression/evaluationOrder/ifAsPlusArgument.kt index 8abdad883e7..15ea628390b 100644 --- a/js/js.translator/testData/expression/evaluationOrder/cases/ifAsPlusArgument.kt +++ b/js/js.translator/testData/box/expression/evaluationOrder/ifAsPlusArgument.kt @@ -1,10 +1,10 @@ package foo -fun box(): Boolean { +fun box(): String { var i = 0 var t = ++i + if (i == 0) 0 else 2 if (t != 3) { - return false + return "fail: $t" } - return true + return "OK" } diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/ifWithComplex.kt b/js/js.translator/testData/box/expression/evaluationOrder/ifWithComplex.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/ifWithComplex.kt rename to js/js.translator/testData/box/expression/evaluationOrder/ifWithComplex.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/intrinsicComplex.kt b/js/js.translator/testData/box/expression/evaluationOrder/intrinsicComplex.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/intrinsicComplex.kt rename to js/js.translator/testData/box/expression/evaluationOrder/intrinsicComplex.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/intrinsicWithBreakContinueReturn.kt b/js/js.translator/testData/box/expression/evaluationOrder/intrinsicWithBreakContinueReturn.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/intrinsicWithBreakContinueReturn.kt rename to js/js.translator/testData/box/expression/evaluationOrder/intrinsicWithBreakContinueReturn.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/literalFunctionAsArgumentWithSideEffect.kt b/js/js.translator/testData/box/expression/evaluationOrder/literalFunctionAsArgumentWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/literalFunctionAsArgumentWithSideEffect.kt rename to js/js.translator/testData/box/expression/evaluationOrder/literalFunctionAsArgumentWithSideEffect.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/loopWithBreakContinueReturnInCondition.kt b/js/js.translator/testData/box/expression/evaluationOrder/loopWithBreakContinueReturnInCondition.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/loopWithBreakContinueReturnInCondition.kt rename to js/js.translator/testData/box/expression/evaluationOrder/loopWithBreakContinueReturnInCondition.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/orOrWithBreakContinueReturn.kt b/js/js.translator/testData/box/expression/evaluationOrder/orOrWithBreakContinueReturn.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/orOrWithBreakContinueReturn.kt rename to js/js.translator/testData/box/expression/evaluationOrder/orOrWithBreakContinueReturn.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/orOrWithSideEffect.kt b/js/js.translator/testData/box/expression/evaluationOrder/orOrWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/orOrWithSideEffect.kt rename to js/js.translator/testData/box/expression/evaluationOrder/orOrWithSideEffect.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/reassignmentLhsCaching.kt b/js/js.translator/testData/box/expression/evaluationOrder/reassignmentLhsCaching.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/reassignmentLhsCaching.kt rename to js/js.translator/testData/box/expression/evaluationOrder/reassignmentLhsCaching.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/whenAsMinusArgument.kt b/js/js.translator/testData/box/expression/evaluationOrder/whenAsMinusArgument.kt similarity index 71% rename from js/js.translator/testData/expression/evaluationOrder/cases/whenAsMinusArgument.kt rename to js/js.translator/testData/box/expression/evaluationOrder/whenAsMinusArgument.kt index 38aa7d13f06..87daced3990 100644 --- a/js/js.translator/testData/expression/evaluationOrder/cases/whenAsMinusArgument.kt +++ b/js/js.translator/testData/box/expression/evaluationOrder/whenAsMinusArgument.kt @@ -1,6 +1,6 @@ package foo -fun box(): Boolean { +fun box(): String { var i = 0 var t = ++i + when(i) { 3 -> 4 @@ -9,7 +9,7 @@ fun box(): Boolean { else -> 100 } if (t != 3) { - return false + return "fail: $t" } - return true + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/whenJsLiteralWithSideEffect.kt b/js/js.translator/testData/box/expression/evaluationOrder/whenJsLiteralWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/whenJsLiteralWithSideEffect.kt rename to js/js.translator/testData/box/expression/evaluationOrder/whenJsLiteralWithSideEffect.kt diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/whenWithComplexConditions.kt b/js/js.translator/testData/box/expression/evaluationOrder/whenWithComplexConditions.kt similarity index 100% rename from js/js.translator/testData/expression/evaluationOrder/cases/whenWithComplexConditions.kt rename to js/js.translator/testData/box/expression/evaluationOrder/whenWithComplexConditions.kt diff --git a/js/js.translator/testData/expression/for/cases/forIteratesOverArray.kt b/js/js.translator/testData/box/expression/for/forIteratesOverArray.kt similarity index 93% rename from js/js.translator/testData/expression/for/cases/forIteratesOverArray.kt rename to js/js.translator/testData/box/expression/for/forIteratesOverArray.kt index d7f47047877..ed043dd7218 100644 --- a/js/js.translator/testData/expression/for/cases/forIteratesOverArray.kt +++ b/js/js.translator/testData/box/expression/for/forIteratesOverArray.kt @@ -2,7 +2,7 @@ package foo val a1 = arrayOfNulls(10) -fun box(): Boolean { +fun box(): String { var c = 0 var d = 0 a1[3] = 3 @@ -30,5 +30,5 @@ fun box(): Boolean { sLong += i assertEquals(55L, sLong) - return true + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/for/cases/forIteratesOverLiteralRange.kt b/js/js.translator/testData/box/expression/for/forIteratesOverLiteralRange.kt similarity index 100% rename from js/js.translator/testData/expression/for/cases/forIteratesOverLiteralRange.kt rename to js/js.translator/testData/box/expression/for/forIteratesOverLiteralRange.kt diff --git a/js/js.translator/testData/expression/for/cases/forIteratesOverNonLiteralRange.kt b/js/js.translator/testData/box/expression/for/forIteratesOverNonLiteralRange.kt similarity index 100% rename from js/js.translator/testData/expression/for/cases/forIteratesOverNonLiteralRange.kt rename to js/js.translator/testData/box/expression/for/forIteratesOverNonLiteralRange.kt diff --git a/js/js.translator/testData/expression/for/cases/forIteratesOverSomethingWithIterator.kt b/js/js.translator/testData/box/expression/for/forIteratesOverSomethingWithIterator.kt similarity index 100% rename from js/js.translator/testData/expression/for/cases/forIteratesOverSomethingWithIterator.kt rename to js/js.translator/testData/box/expression/for/forIteratesOverSomethingWithIterator.kt diff --git a/js/js.translator/testData/expression/for/cases/forOnEmptyArray.kt b/js/js.translator/testData/box/expression/for/forOnEmptyArray.kt similarity index 54% rename from js/js.translator/testData/expression/for/cases/forOnEmptyArray.kt rename to js/js.translator/testData/box/expression/for/forOnEmptyArray.kt index be373105181..b211d751166 100644 --- a/js/js.translator/testData/expression/for/cases/forOnEmptyArray.kt +++ b/js/js.translator/testData/box/expression/for/forOnEmptyArray.kt @@ -2,9 +2,9 @@ package foo val a1 = arrayOfNulls(0) -fun box(): Boolean { +fun box(): String { for (a in a1) { - return false; + return "fail" } - return true; + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/for/cases/forWithComplexOneStatement.kt b/js/js.translator/testData/box/expression/for/forWithComplexOneStatement.kt similarity index 100% rename from js/js.translator/testData/expression/for/cases/forWithComplexOneStatement.kt rename to js/js.translator/testData/box/expression/for/forWithComplexOneStatement.kt diff --git a/js/js.translator/testData/expression/for/cases/forWithEmptyBody.kt b/js/js.translator/testData/box/expression/for/forWithEmptyBody.kt similarity index 100% rename from js/js.translator/testData/expression/for/cases/forWithEmptyBody.kt rename to js/js.translator/testData/box/expression/for/forWithEmptyBody.kt diff --git a/js/js.translator/testData/expression/for/cases/forWithSideEffectImElementAccessAndWithEmptyBody.kt b/js/js.translator/testData/box/expression/for/forWithSideEffectImElementAccessAndWithEmptyBody.kt similarity index 100% rename from js/js.translator/testData/expression/for/cases/forWithSideEffectImElementAccessAndWithEmptyBody.kt rename to js/js.translator/testData/box/expression/for/forWithSideEffectImElementAccessAndWithEmptyBody.kt diff --git a/js/js.translator/testData/expression/for/cases/labeledFor.kt b/js/js.translator/testData/box/expression/for/labeledFor.kt similarity index 71% rename from js/js.translator/testData/expression/for/cases/labeledFor.kt rename to js/js.translator/testData/box/expression/for/labeledFor.kt index b098a9ab244..c7cd522ff9c 100644 --- a/js/js.translator/testData/expression/for/cases/labeledFor.kt +++ b/js/js.translator/testData/box/expression/for/labeledFor.kt @@ -2,7 +2,7 @@ package foo val a1 = arrayOfNulls(0) -fun box(): Boolean { +fun box(): String { var bar = 33 outer@ for (a in arrayOf(1, 2)) { for (b in arrayOf(1, 4)) { @@ -10,5 +10,7 @@ fun box(): Boolean { } bar = 42 } - return bar == 33; + if (bar != 33) return "fail: $bar" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/for/cases/labeledForWithContinue.kt b/js/js.translator/testData/box/expression/for/labeledForWithContinue.kt similarity index 100% rename from js/js.translator/testData/expression/for/cases/labeledForWithContinue.kt rename to js/js.translator/testData/box/expression/for/labeledForWithContinue.kt diff --git a/js/js.translator/testData/expression/for/cases/labeledForWithWhile.kt b/js/js.translator/testData/box/expression/for/labeledForWithWhile.kt similarity index 100% rename from js/js.translator/testData/expression/for/cases/labeledForWithWhile.kt rename to js/js.translator/testData/box/expression/for/labeledForWithWhile.kt diff --git a/js/js.translator/testData/expression/function/cases/KT-921.kt b/js/js.translator/testData/box/expression/function/KT-921.kt similarity index 66% rename from js/js.translator/testData/expression/function/cases/KT-921.kt rename to js/js.translator/testData/box/expression/function/KT-921.kt index e68bc653eea..834783dc3fc 100644 --- a/js/js.translator/testData/expression/function/cases/KT-921.kt +++ b/js/js.translator/testData/box/expression/function/KT-921.kt @@ -1,5 +1,13 @@ import java.util.* +var log = "" + +private fun printLog(message: String) { + log += message +} + +private fun printlnLog(message: String) = printLog("$message\n") + class Lifetime() { val attached = ArrayList>() @@ -39,12 +47,12 @@ fun lifetime(body: (Lifetime) -> Unit) { fun Dump(items: ArrayList) { for (item in items) { - print(item.toString() + ", ") + printLog(item.toString() + ", ") } - println("end") + printlnLog("end") } -fun main(args: Array) { +fun box(): String { val v = Viewable() val x = ArrayList() v.add(1) @@ -57,8 +65,23 @@ fun main(args: Array) { itemLifetime.attach() { x.remove(item as Any); Dump(x); - println("!") + printlnLog("!") } } } + + val expected = + "1, end\n" + + "1, 2, end\n" + + "1, 2, 3, end\n" + + "2, 3, end\n" + + "!\n" + + "3, end\n" + + "!\n" + + "end\n" + + "!\n" + + if (log != expected) return "fail: $log" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/function/_commonFiles/helpers.kt b/js/js.translator/testData/box/expression/function/_common.kt similarity index 100% rename from js/js.translator/testData/expression/function/_commonFiles/helpers.kt rename to js/js.translator/testData/box/expression/function/_common.kt diff --git a/js/js.translator/testData/expression/function/cases/adderClosure.kt b/js/js.translator/testData/box/expression/function/adderClosure.kt similarity index 55% rename from js/js.translator/testData/expression/function/cases/adderClosure.kt rename to js/js.translator/testData/box/expression/function/adderClosure.kt index 6444866af46..8f0428712ae 100644 --- a/js/js.translator/testData/expression/function/cases/adderClosure.kt +++ b/js/js.translator/testData/box/expression/function/adderClosure.kt @@ -1,9 +1,11 @@ package foo -fun box(): Boolean { +fun box(): String { var sum = 0 val adder = { a: Int -> sum += a } adder(3) adder(2) - return sum == 5 + + if (sum != 5) return "fail: $sum" + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/function/cases/callFunInInit.kt b/js/js.translator/testData/box/expression/function/callFunInInit.kt similarity index 52% rename from js/js.translator/testData/expression/function/cases/callFunInInit.kt rename to js/js.translator/testData/box/expression/function/callFunInInit.kt index ecbf611936d..a9bc7257b41 100644 --- a/js/js.translator/testData/expression/function/cases/callFunInInit.kt +++ b/js/js.translator/testData/box/expression/function/callFunInInit.kt @@ -6,4 +6,4 @@ private val doInit = { A() }() -fun box(): Boolean = doInit is A +fun box(): String = if (doInit is A) "OK" else "fail" diff --git a/js/js.translator/testData/expression/function/cases/closureWithParameter.kt b/js/js.translator/testData/box/expression/function/closureWithParameter.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/closureWithParameter.kt rename to js/js.translator/testData/box/expression/function/closureWithParameter.kt diff --git a/js/js.translator/testData/expression/function/cases/closureWithParameterAndBoxing.kt b/js/js.translator/testData/box/expression/function/closureWithParameterAndBoxing.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/closureWithParameterAndBoxing.kt rename to js/js.translator/testData/box/expression/function/closureWithParameterAndBoxing.kt diff --git a/js/js.translator/testData/box/expression/function/defaultParameters.kt b/js/js.translator/testData/box/expression/function/defaultParameters.kt new file mode 100644 index 00000000000..1f9c3242de6 --- /dev/null +++ b/js/js.translator/testData/box/expression/function/defaultParameters.kt @@ -0,0 +1,13 @@ +package foo + +fun f(a: Int = 2, b: Int = 3) = a + b + +fun box(): String { + if (f(1, 2) != 3) return "fail1" + if (f(1, 3) != 4) return "fail2" + if (f(3) != 6) return "fail3" + if (f() != 5) return "fail4" + + return "OK" +} + diff --git a/js/js.translator/testData/expression/function/cases/enclosingThis.kt b/js/js.translator/testData/box/expression/function/enclosingThis.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/enclosingThis.kt rename to js/js.translator/testData/box/expression/function/enclosingThis.kt diff --git a/js/js.translator/testData/expression/function/cases/expressionAsExtFunction.kt b/js/js.translator/testData/box/expression/function/expressionAsExtFunction.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/expressionAsExtFunction.kt rename to js/js.translator/testData/box/expression/function/expressionAsExtFunction.kt diff --git a/js/js.translator/testData/expression/function/cases/expressionAsFunction.kt b/js/js.translator/testData/box/expression/function/expressionAsFunction.kt similarity index 76% rename from js/js.translator/testData/expression/function/cases/expressionAsFunction.kt rename to js/js.translator/testData/box/expression/function/expressionAsFunction.kt index 2939bfd8e17..14304b72fde 100644 --- a/js/js.translator/testData/expression/function/cases/expressionAsFunction.kt +++ b/js/js.translator/testData/box/expression/function/expressionAsFunction.kt @@ -15,28 +15,28 @@ fun chain(start: Int): Int { return res; } -fun box(): Boolean { +fun box(): String { if (chain(0) != 0) { - return false; + return "fail1" } list.add(d); if (list.get(0)(0) != 1) { - return false; + return "fail2" } list.add(p); if (list.get(1)(10) != 30) { - return false; + return "fail3" } if (chain(0) != 3) { - return false; + return "fail4" } list.add({ it * it }); list.add({ it - 100 }); if (chain(2) != -19) { - return false; + return "fail5" } if (({ a: Int -> a * a }(3)) != 9) { - return false; + return "fail7" } - return true; + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/function/cases/functionExpression.kt b/js/js.translator/testData/box/expression/function/functionExpression.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/functionExpression.kt rename to js/js.translator/testData/box/expression/function/functionExpression.kt diff --git a/js/js.translator/testData/expression/function/cases/functionInsideFunction.kt b/js/js.translator/testData/box/expression/function/functionInsideFunction.kt similarity index 57% rename from js/js.translator/testData/expression/function/cases/functionInsideFunction.kt rename to js/js.translator/testData/box/expression/function/functionInsideFunction.kt index e5fba1e0a5f..b1193bbdffd 100644 --- a/js/js.translator/testData/expression/function/cases/functionInsideFunction.kt +++ b/js/js.translator/testData/box/expression/function/functionInsideFunction.kt @@ -1,10 +1,12 @@ package foo -fun box(): Boolean { +fun box(): String { fun f() = 3 - return (((f() + f()) == 6) && (b() == 24)) + if ((f() + f()) != 6) return "fail1" + if (b() != 24) return "fail2" + return "OK" } diff --git a/js/js.translator/testData/expression/function/cases/functionLiteral.kt b/js/js.translator/testData/box/expression/function/functionLiteral.kt similarity index 55% rename from js/js.translator/testData/expression/function/cases/functionLiteral.kt rename to js/js.translator/testData/box/expression/function/functionLiteral.kt index cb4f36cfaf3..4bdda24588a 100644 --- a/js/js.translator/testData/expression/function/cases/functionLiteral.kt +++ b/js/js.translator/testData/box/expression/function/functionLiteral.kt @@ -1,8 +1,9 @@ package foo -fun box(): Boolean { +fun box(): String { var sum = 0 val addFive = { a: Int -> a + 5 } sum = addFive(sum) - return sum == 5 + if (sum != 5) return "fail: $sum" + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/function/functionLiteralAsLastParameter.kt b/js/js.translator/testData/box/expression/function/functionLiteralAsLastParameter.kt new file mode 100644 index 00000000000..2ca035e61d3 --- /dev/null +++ b/js/js.translator/testData/box/expression/function/functionLiteralAsLastParameter.kt @@ -0,0 +1,14 @@ +package foo + +fun f(a: (Int) -> Int) = a(1) + +fun box(): String { + + if (f() { + it + 2 + } != 3) return "fail1" + + if (f() { a: Int -> a * 300 } != 300) return "fail2" + + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/function/functionLiteralAsParameter.kt b/js/js.translator/testData/box/expression/function/functionLiteralAsParameter.kt new file mode 100644 index 00000000000..5c4d9be41f4 --- /dev/null +++ b/js/js.translator/testData/box/expression/function/functionLiteralAsParameter.kt @@ -0,0 +1,10 @@ +package foo + +fun apply(f: (Int) -> Int, t: Int): Int { + return f(t) +} + + +fun box(): String { + return if (apply({ a: Int -> a + 5 }, 3) == 8) return "OK" else "fail" +} \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/function/functionUsedBeforeDeclaration.kt b/js/js.translator/testData/box/expression/function/functionUsedBeforeDeclaration.kt new file mode 100644 index 00000000000..3b8c83bb710 --- /dev/null +++ b/js/js.translator/testData/box/expression/function/functionUsedBeforeDeclaration.kt @@ -0,0 +1,12 @@ +package foo + + +fun box(): String { + return f() +} + +fun f(): String { + return "OK" +} + + diff --git a/js/js.translator/testData/expression/function/cases/functionWithTwoParametersCall.kt b/js/js.translator/testData/box/expression/function/functionWithTwoParametersCall.kt similarity index 55% rename from js/js.translator/testData/expression/function/cases/functionWithTwoParametersCall.kt rename to js/js.translator/testData/box/expression/function/functionWithTwoParametersCall.kt index 6d1f4c2d66d..c9518344486 100644 --- a/js/js.translator/testData/expression/function/cases/functionWithTwoParametersCall.kt +++ b/js/js.translator/testData/box/expression/function/functionWithTwoParametersCall.kt @@ -4,6 +4,6 @@ fun sum(param1: Int, param2: Int): Int { return param1 + param2; } -fun box(): Boolean { - return (sum(1, 5) == 6) +fun box(): String { + return if (sum(1, 5) == 6) "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/function/implicitItParameter.kt b/js/js.translator/testData/box/expression/function/implicitItParameter.kt new file mode 100644 index 00000000000..166fc4bf622 --- /dev/null +++ b/js/js.translator/testData/box/expression/function/implicitItParameter.kt @@ -0,0 +1,12 @@ +package foo + +fun test(f: (Int) -> Boolean, p: Int) = f(p) + +fun box(): String { + if (!test({ it + 1 == 2 }, 1)) return "fail1" + + if (!test({ it > 1 }, 3)) return "fail2" + + return if (test({ ((it < 1) == false) }, 1)) "OK" else "fail3" + +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/function/cases/lambdaOrLocalFunInsideEnumMethod.kt b/js/js.translator/testData/box/expression/function/lambdaOrLocalFunInsideEnumMethod.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/lambdaOrLocalFunInsideEnumMethod.kt rename to js/js.translator/testData/box/expression/function/lambdaOrLocalFunInsideEnumMethod.kt diff --git a/js/js.translator/testData/expression/function/cases/localExtFunction.kt b/js/js.translator/testData/box/expression/function/localExtFunction.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/localExtFunction.kt rename to js/js.translator/testData/box/expression/function/localExtFunction.kt diff --git a/js/js.translator/testData/expression/function/cases/loopClosure.kt b/js/js.translator/testData/box/expression/function/loopClosure.kt similarity index 73% rename from js/js.translator/testData/expression/function/cases/loopClosure.kt rename to js/js.translator/testData/box/expression/function/loopClosure.kt index 3367598cd30..92273f77c3f 100644 --- a/js/js.translator/testData/expression/function/cases/loopClosure.kt +++ b/js/js.translator/testData/box/expression/function/loopClosure.kt @@ -12,7 +12,9 @@ fun loop(times: Int) { } } -fun box(): Boolean { +fun box(): String { loop(5) - return b == 5 + if (b != 5) return "fail: $b" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/function/cases/mangling.kt b/js/js.translator/testData/box/expression/function/mangling.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/mangling.kt rename to js/js.translator/testData/box/expression/function/mangling.kt diff --git a/js/js.translator/testData/expression/function/cases/manglingAnyMethods.kt b/js/js.translator/testData/box/expression/function/manglingAnyMethods.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/manglingAnyMethods.kt rename to js/js.translator/testData/box/expression/function/manglingAnyMethods.kt diff --git a/js/js.translator/testData/expression/function/cases/manglingClashFunctionsAndClasses.kt b/js/js.translator/testData/box/expression/function/manglingClashFunctionsAndClasses.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/manglingClashFunctionsAndClasses.kt rename to js/js.translator/testData/box/expression/function/manglingClashFunctionsAndClasses.kt diff --git a/js/js.translator/testData/expression/function/cases/manglingClashWithFunctionsWithoutParameters.kt b/js/js.translator/testData/box/expression/function/manglingClashWithFunctionsWithoutParameters.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/manglingClashWithFunctionsWithoutParameters.kt rename to js/js.translator/testData/box/expression/function/manglingClashWithFunctionsWithoutParameters.kt diff --git a/js/js.translator/testData/expression/function/cases/manglingStability.kt b/js/js.translator/testData/box/expression/function/manglingStability.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/manglingStability.kt rename to js/js.translator/testData/box/expression/function/manglingStability.kt diff --git a/js/js.translator/testData/expression/function/cases/namedArguments.kt b/js/js.translator/testData/box/expression/function/namedArguments.kt similarity index 60% rename from js/js.translator/testData/expression/function/cases/namedArguments.kt rename to js/js.translator/testData/box/expression/function/namedArguments.kt index 9fc4fe73343..42342fb09ee 100644 --- a/js/js.translator/testData/expression/function/cases/namedArguments.kt +++ b/js/js.translator/testData/box/expression/function/namedArguments.kt @@ -2,15 +2,15 @@ package foo fun test(x: Int, y: Int) = y - x -fun box(): Boolean { +fun box(): String { if (test(1, 2) != 1) { - return false; + return "fail1" } if (test(x = 1, y = 2) != 1) { - return false; + return "fail2" } if (test(y = 2, x = 1) != 1) { - return false; + return "fail3" } - return true + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/function/cases/overloadClassConstructorByFactoryMethod.kt b/js/js.translator/testData/box/expression/function/overloadClassConstructorByFactoryMethod.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/overloadClassConstructorByFactoryMethod.kt rename to js/js.translator/testData/box/expression/function/overloadClassConstructorByFactoryMethod.kt diff --git a/js/js.translator/testData/expression/function/cases/overloadOverridenFun.kt b/js/js.translator/testData/box/expression/function/overloadOverridenFun.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/overloadOverridenFun.kt rename to js/js.translator/testData/box/expression/function/overloadOverridenFun.kt diff --git a/js/js.translator/testData/expression/function/cases/overloadingWithInheritance.kt b/js/js.translator/testData/box/expression/function/overloadingWithInheritance.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/overloadingWithInheritance.kt rename to js/js.translator/testData/box/expression/function/overloadingWithInheritance.kt diff --git a/js/js.translator/testData/expression/function/cases/vararg.kt b/js/js.translator/testData/box/expression/function/vararg.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/vararg.kt rename to js/js.translator/testData/box/expression/function/vararg.kt diff --git a/js/js.translator/testData/expression/function/cases/whenFunction.kt b/js/js.translator/testData/box/expression/function/whenFunction.kt similarity index 100% rename from js/js.translator/testData/expression/function/cases/whenFunction.kt rename to js/js.translator/testData/box/expression/function/whenFunction.kt diff --git a/js/js.translator/testData/expression/identifierClash/cases/overloadedFun.kt b/js/js.translator/testData/box/expression/identifierClash/overloadedFun.kt similarity index 68% rename from js/js.translator/testData/expression/identifierClash/cases/overloadedFun.kt rename to js/js.translator/testData/box/expression/identifierClash/overloadedFun.kt index 06902588beb..f7965d342e7 100644 --- a/js/js.translator/testData/expression/identifierClash/cases/overloadedFun.kt +++ b/js/js.translator/testData/box/expression/identifierClash/overloadedFun.kt @@ -13,6 +13,9 @@ class A : B() { override fun foo(param: String) = "foo(String)" } -fun box(): Boolean { - return A().foo("OK") == "foo(String)" +fun box(): String { + val result = A().foo("OK") + if (result != "foo(String)") return "fail: $result" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/identifierClash/useVariableOfNameOfFunction.kt b/js/js.translator/testData/box/expression/identifierClash/useVariableOfNameOfFunction.kt new file mode 100644 index 00000000000..f84d41355e9 --- /dev/null +++ b/js/js.translator/testData/box/expression/identifierClash/useVariableOfNameOfFunction.kt @@ -0,0 +1,6 @@ +package foo + +fun box(): String { + var box = "foo" + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/identityEquals/cases/identityEqualsMethod.kt b/js/js.translator/testData/box/expression/identityEquals/identityEqualsMethod.kt similarity index 100% rename from js/js.translator/testData/expression/identityEquals/cases/identityEqualsMethod.kt rename to js/js.translator/testData/box/expression/identityEquals/identityEqualsMethod.kt diff --git a/js/js.translator/testData/expression/identityEquals/cases/identityEqualsMethodForPrimitives.kt b/js/js.translator/testData/box/expression/identityEquals/identityEqualsMethodForPrimitives.kt similarity index 100% rename from js/js.translator/testData/expression/identityEquals/cases/identityEqualsMethodForPrimitives.kt rename to js/js.translator/testData/box/expression/identityEquals/identityEqualsMethodForPrimitives.kt diff --git a/js/js.translator/testData/box/expression/if/ifElseAsExpressionWithThrow.kt b/js/js.translator/testData/box/expression/if/ifElseAsExpressionWithThrow.kt new file mode 100644 index 00000000000..a239b924dd0 --- /dev/null +++ b/js/js.translator/testData/box/expression/if/ifElseAsExpressionWithThrow.kt @@ -0,0 +1,11 @@ +package foo + +fun box(): String { + try { + if (true) throw Exception() else "fail1" + } + catch (e: Exception) { + return "OK" + } + return "fail2" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/if/cases/ifInsideLambda.kt b/js/js.translator/testData/box/expression/if/ifInsideLambda.kt similarity index 100% rename from js/js.translator/testData/expression/if/cases/ifInsideLambda.kt rename to js/js.translator/testData/box/expression/if/ifInsideLambda.kt diff --git a/js/js.translator/testData/expression/if/cases/nestedIf.kt b/js/js.translator/testData/box/expression/if/nestedIf.kt similarity index 100% rename from js/js.translator/testData/expression/if/cases/nestedIf.kt rename to js/js.translator/testData/box/expression/if/nestedIf.kt diff --git a/js/js.translator/testData/expression/if/cases/withEmptyBlocks.kt b/js/js.translator/testData/box/expression/if/withEmptyBlocks.kt similarity index 100% rename from js/js.translator/testData/expression/if/cases/withEmptyBlocks.kt rename to js/js.translator/testData/box/expression/if/withEmptyBlocks.kt diff --git a/js/js.translator/testData/expression/invoke/cases/explicitInvokeLambda.kt b/js/js.translator/testData/box/expression/invoke/explicitInvokeLambda.kt similarity index 100% rename from js/js.translator/testData/expression/invoke/cases/explicitInvokeLambda.kt rename to js/js.translator/testData/box/expression/invoke/explicitInvokeLambda.kt diff --git a/js/js.translator/testData/expression/invoke/cases/extensionInvoke.kt b/js/js.translator/testData/box/expression/invoke/extensionInvoke.kt similarity index 100% rename from js/js.translator/testData/expression/invoke/cases/extensionInvoke.kt rename to js/js.translator/testData/box/expression/invoke/extensionInvoke.kt diff --git a/js/js.translator/testData/expression/invoke/cases/inheritFromFunctionTraits.kt b/js/js.translator/testData/box/expression/invoke/inheritFromFunctionTraits.kt similarity index 100% rename from js/js.translator/testData/expression/invoke/cases/inheritFromFunctionTraits.kt rename to js/js.translator/testData/box/expression/invoke/inheritFromFunctionTraits.kt diff --git a/js/js.translator/testData/expression/invoke/cases/invokeInExtensionFunctionLiteral.kt b/js/js.translator/testData/box/expression/invoke/invokeInExtensionFunctionLiteral.kt similarity index 53% rename from js/js.translator/testData/expression/invoke/cases/invokeInExtensionFunctionLiteral.kt rename to js/js.translator/testData/box/expression/invoke/invokeInExtensionFunctionLiteral.kt index 9a44c19b751..a303d254596 100644 --- a/js/js.translator/testData/expression/invoke/cases/invokeInExtensionFunctionLiteral.kt +++ b/js/js.translator/testData/box/expression/invoke/invokeInExtensionFunctionLiteral.kt @@ -1,10 +1,13 @@ package foo -fun box(): Boolean { +fun box(): String { val v1 = 1.(fun Int.(x: Int) = this + x)(2) val f = fun Int.(x: Int) = this + x val v2 = 1.(f)(2) - return v1 == 3 && v2 == 3 + if (v1 != 3) return "fail1: $v1" + if (v2 != 3) return "fail2: $v2" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/invoke/invokeInFunctionLiteral.kt b/js/js.translator/testData/box/expression/invoke/invokeInFunctionLiteral.kt new file mode 100644 index 00000000000..d5cad8663cf --- /dev/null +++ b/js/js.translator/testData/box/expression/invoke/invokeInFunctionLiteral.kt @@ -0,0 +1,13 @@ +package foo + +fun box(): String { + val v1 = { x: Int -> x}(2) + + val f = { x: Int -> x} + val v2 = (f)(2) + + if (v1 != 2) return "fail1: $v1" + if (v2 != 2) return "fail2: $v2" + + return "OK" +} diff --git a/js/js.translator/testData/expression/invoke/cases/invokeMethod.kt b/js/js.translator/testData/box/expression/invoke/invokeMethod.kt similarity index 100% rename from js/js.translator/testData/expression/invoke/cases/invokeMethod.kt rename to js/js.translator/testData/box/expression/invoke/invokeMethod.kt diff --git a/js/js.translator/testData/expression/invoke/cases/invokeOnExprByConvention.kt b/js/js.translator/testData/box/expression/invoke/invokeOnExprByConvention.kt similarity index 100% rename from js/js.translator/testData/expression/invoke/cases/invokeOnExprByConvention.kt rename to js/js.translator/testData/box/expression/invoke/invokeOnExprByConvention.kt diff --git a/js/js.translator/testData/box/expression/invoke/invokeWithDispatchAndExtensionReceivers.kt b/js/js.translator/testData/box/expression/invoke/invokeWithDispatchAndExtensionReceivers.kt new file mode 100644 index 00000000000..ed26597e083 --- /dev/null +++ b/js/js.translator/testData/box/expression/invoke/invokeWithDispatchAndExtensionReceivers.kt @@ -0,0 +1,11 @@ +package foo + +class A + +fun box(): String { + val a = A() + val b = fun A.(i: Int) = i + val result = a.(b)(1) + if (result != 1) return "fail: $result" + return "OK" +} diff --git a/js/js.translator/testData/box/expression/invoke/invokeWithDispatchReceiver.kt b/js/js.translator/testData/box/expression/invoke/invokeWithDispatchReceiver.kt new file mode 100644 index 00000000000..125a7dcf49a --- /dev/null +++ b/js/js.translator/testData/box/expression/invoke/invokeWithDispatchReceiver.kt @@ -0,0 +1,11 @@ +package foo + +class A { + operator fun invoke(i: Int) = i +} + +fun box(): String { + val result = A()(1) + if (result != 1) return "fail: $result" + return "OK" +} diff --git a/js/js.translator/testData/box/expression/invoke/invokeWithExtensionReceiver.kt b/js/js.translator/testData/box/expression/invoke/invokeWithExtensionReceiver.kt new file mode 100644 index 00000000000..ef5a5a64472 --- /dev/null +++ b/js/js.translator/testData/box/expression/invoke/invokeWithExtensionReceiver.kt @@ -0,0 +1,8 @@ +package foo + +operator fun Int.invoke(x: Int) = this + x +fun box(): String { + val result = 1(2) + if (result != 3) return "fail: $result" + return "OK" +} diff --git a/js/js.translator/testData/expression/invoke/cases/invokeWithImplicitDispatchReceiverAndExtensionReceiver.kt b/js/js.translator/testData/box/expression/invoke/invokeWithImplicitDispatchReceiverAndExtensionReceiver.kt similarity index 100% rename from js/js.translator/testData/expression/invoke/cases/invokeWithImplicitDispatchReceiverAndExtensionReceiver.kt rename to js/js.translator/testData/box/expression/invoke/invokeWithImplicitDispatchReceiverAndExtensionReceiver.kt diff --git a/js/js.translator/testData/expression/misc/cases/KT-1052-2.kt b/js/js.translator/testData/box/expression/misc/KT-1052-2.kt similarity index 56% rename from js/js.translator/testData/expression/misc/cases/KT-1052-2.kt rename to js/js.translator/testData/box/expression/misc/KT-1052-2.kt index b3d1ba3830f..06015427efd 100644 --- a/js/js.translator/testData/expression/misc/cases/KT-1052-2.kt +++ b/js/js.translator/testData/box/expression/misc/KT-1052-2.kt @@ -1,52 +1,52 @@ package foo -fun box(): Boolean { +fun box(): String { if (!true.and(true)) { - return false; + return "fail1" } if (false.and(true)) { - return false; + return "fail2" } if (!true.or(false)) { - return false; + return "fail3" } if (false.or(false)) { - return false; + return "fail3" } if (!true.or(true)) { - return false; + return "fail4" } if (false.and(false)) { - return false; + return "fail5" } if (false.xor(false)) { - return false; + return "fail6" } if (!true.xor(false)) { - return false; + return "fail7" } if (true.xor(true)) { - return false; + return "fail8" } if (true.not()) { - return false; + return "fail9" } if (!false.not()) { - return false; + return "fail10" } - return true; + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/KT-1052.kt b/js/js.translator/testData/box/expression/misc/KT-1052.kt similarity index 55% rename from js/js.translator/testData/expression/misc/cases/KT-1052.kt rename to js/js.translator/testData/box/expression/misc/KT-1052.kt index 078aee182d1..e8a7f82ad35 100644 --- a/js/js.translator/testData/expression/misc/cases/KT-1052.kt +++ b/js/js.translator/testData/box/expression/misc/KT-1052.kt @@ -1,5 +1,14 @@ -fun main(args: Array) { - println(true.and1(true)) +var log = "" + +fun printlnLog(message: Any) { + log += "$message\n" +} + +fun box(): String { + printlnLog(true.and1(true)) + + if (log != "true\n") return "fail: $log" + return "OK" } fun Boolean.and1(other: Boolean): Boolean { diff --git a/js/js.translator/testData/expression/misc/cases/KT-1361-1.kt b/js/js.translator/testData/box/expression/misc/KT-1361-1.kt similarity index 60% rename from js/js.translator/testData/expression/misc/cases/KT-1361-1.kt rename to js/js.translator/testData/box/expression/misc/KT-1361-1.kt index 4db22adc6bf..520b2c2d596 100644 --- a/js/js.translator/testData/expression/misc/cases/KT-1361-1.kt +++ b/js/js.translator/testData/box/expression/misc/KT-1361-1.kt @@ -1,14 +1,14 @@ package foo class B { - val d = true + val d = "OK" - fun f(): Boolean { + fun f(): String { val c = object { - fun foo(): Boolean { + fun foo(): String { return d } - fun boo(): Boolean { + fun boo(): String { return foo() } } @@ -16,6 +16,6 @@ class B { } } -fun box(): Boolean { +fun box(): String { return B().f() } \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/KT-1361-2.kt b/js/js.translator/testData/box/expression/misc/KT-1361-2.kt similarity index 91% rename from js/js.translator/testData/expression/misc/cases/KT-1361-2.kt rename to js/js.translator/testData/box/expression/misc/KT-1361-2.kt index 3fdf7006d82..439017169af 100644 --- a/js/js.translator/testData/expression/misc/cases/KT-1361-2.kt +++ b/js/js.translator/testData/box/expression/misc/KT-1361-2.kt @@ -36,16 +36,16 @@ interface ColorLike { val blue: Int; } -fun box(): Boolean { +fun box(): String { val d = Data(Array(4) { 0 }, 1, 1) if (d[0, 0].red != 0) { - return false + return "fail1" } if (d[0, 0].green != 0) { - return false + return "fail2" } if (d[0, 0].blue != 0) { - return false + return "fail3" } - return true + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/KT-1865.kt b/js/js.translator/testData/box/expression/misc/KT-1865.kt similarity index 52% rename from js/js.translator/testData/expression/misc/cases/KT-1865.kt rename to js/js.translator/testData/box/expression/misc/KT-1865.kt index d993fc40926..fb1d34af37d 100644 --- a/js/js.translator/testData/expression/misc/cases/KT-1865.kt +++ b/js/js.translator/testData/box/expression/misc/KT-1865.kt @@ -8,4 +8,8 @@ class B : A() { override fun foo(a: Int) = a + 1 } -fun box() = (B().foo() == 2) \ No newline at end of file +fun box(): String { + val result = B().foo() + if (result != 2) return "fail: $result" + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/KT-2314.kt b/js/js.translator/testData/box/expression/misc/KT-2314.kt similarity index 82% rename from js/js.translator/testData/expression/misc/cases/KT-2314.kt rename to js/js.translator/testData/box/expression/misc/KT-2314.kt index 58b628cf891..06e370bdda6 100644 --- a/js/js.translator/testData/expression/misc/cases/KT-2314.kt +++ b/js/js.translator/testData/box/expression/misc/KT-2314.kt @@ -2,12 +2,12 @@ package foo import java.util.* -fun box(): Boolean { +fun box(): String { val data = myArrayList("foo", "bar") if (data.myHead != "foo") { - return false + return "fail: ${data.myHead}" } - return true + return "OK" } diff --git a/js/js.translator/testData/expression/misc/cases/KT-5058.kt b/js/js.translator/testData/box/expression/misc/KT-5058.kt similarity index 88% rename from js/js.translator/testData/expression/misc/cases/KT-5058.kt rename to js/js.translator/testData/box/expression/misc/KT-5058.kt index f4280804cad..ec157be135f 100644 --- a/js/js.translator/testData/expression/misc/cases/KT-5058.kt +++ b/js/js.translator/testData/box/expression/misc/KT-5058.kt @@ -18,8 +18,8 @@ fun test():Any { return f } -fun box(): Boolean { +fun box(): Any { var result = test() - return result == "OK"; + return result } diff --git a/js/js.translator/testData/expression/misc/cases/KT-740-2.kt b/js/js.translator/testData/box/expression/misc/KT-740-2.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/KT-740-2.kt rename to js/js.translator/testData/box/expression/misc/KT-740-2.kt diff --git a/js/js.translator/testData/expression/misc/cases/KT-740-3.kt b/js/js.translator/testData/box/expression/misc/KT-740-3.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/KT-740-3.kt rename to js/js.translator/testData/box/expression/misc/KT-740-3.kt diff --git a/js/js.translator/testData/expression/misc/cases/KT-740.kt b/js/js.translator/testData/box/expression/misc/KT-740.kt similarity index 63% rename from js/js.translator/testData/expression/misc/cases/KT-740.kt rename to js/js.translator/testData/box/expression/misc/KT-740.kt index 5da03933f15..1e37e11c48d 100644 --- a/js/js.translator/testData/expression/misc/cases/KT-740.kt +++ b/js/js.translator/testData/box/expression/misc/KT-740.kt @@ -9,14 +9,14 @@ class A() { } } -fun box(): Boolean { +fun box(): String { ++A().p if (c != 1) { - return false; + return "fail1: $c" } --A().p if (c != 2) { - return false; + return "fail2: $c" } - return true + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/KT-817.kt b/js/js.translator/testData/box/expression/misc/KT-817.kt similarity index 75% rename from js/js.translator/testData/expression/misc/cases/KT-817.kt rename to js/js.translator/testData/box/expression/misc/KT-817.kt index e5168bdb557..9186ebef76b 100644 --- a/js/js.translator/testData/expression/misc/cases/KT-817.kt +++ b/js/js.translator/testData/box/expression/misc/KT-817.kt @@ -9,13 +9,13 @@ class Range() { fun next() = start + if (reversed) -(--count) else (--count); } -fun box(): Boolean { +fun box(): String { val r = Range() if (r.next() != 9) { - return false; + return "fail1" } if (r.next() != 8) { - return false; + return "fail2" } - return true; + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/misc/classWithoutPackage.kt b/js/js.translator/testData/box/expression/misc/classWithoutPackage.kt new file mode 100644 index 00000000000..443bd294e40 --- /dev/null +++ b/js/js.translator/testData/box/expression/misc/classWithoutPackage.kt @@ -0,0 +1,11 @@ +class A(var a: Int) { + init { + a = 3 + } +} + +fun box(): String { + val result = A(1).a + if (result != 3) return "fail: $result" + return "OK" +} diff --git a/js/js.translator/testData/expression/misc/cases/elvis.kt b/js/js.translator/testData/box/expression/misc/elvis.kt similarity index 66% rename from js/js.translator/testData/expression/misc/cases/elvis.kt rename to js/js.translator/testData/box/expression/misc/elvis.kt index 945636d7af4..a6a3cee2f0b 100644 --- a/js/js.translator/testData/expression/misc/cases/elvis.kt +++ b/js/js.translator/testData/box/expression/misc/elvis.kt @@ -1,16 +1,16 @@ package foo -fun box(): Boolean { +fun box(): String { if (f(null) != false) { - return false; + return "fail1" } if (f(2) != true) { - return false; + return "fail2" } if (f(1) != false) { - return true; + return "fail3" } - return true + return "OK" } fun Int.isEven() = (this % 2) == 0 diff --git a/js/js.translator/testData/expression/misc/cases/elvisReturnNested.kt b/js/js.translator/testData/box/expression/misc/elvisReturnNested.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/elvisReturnNested.kt rename to js/js.translator/testData/box/expression/misc/elvisReturnNested.kt diff --git a/js/js.translator/testData/expression/misc/cases/elvisReturnSimple.kt b/js/js.translator/testData/box/expression/misc/elvisReturnSimple.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/elvisReturnSimple.kt rename to js/js.translator/testData/box/expression/misc/elvisReturnSimple.kt diff --git a/js/js.translator/testData/expression/misc/cases/elvisWithThrow.kt b/js/js.translator/testData/box/expression/misc/elvisWithThrow.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/elvisWithThrow.kt rename to js/js.translator/testData/box/expression/misc/elvisWithThrow.kt diff --git a/js/js.translator/testData/box/expression/misc/exclExcl.kt b/js/js.translator/testData/box/expression/misc/exclExcl.kt new file mode 100644 index 00000000000..3554d789a66 --- /dev/null +++ b/js/js.translator/testData/box/expression/misc/exclExcl.kt @@ -0,0 +1,10 @@ +package foo + + +fun box(): String { + val a: Int? = 0 + + val result = (a!! + 3) + if (result != 3) return "fail: $result" + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/misc/exclExclResultIsComputedOnce.kt b/js/js.translator/testData/box/expression/misc/exclExclResultIsComputedOnce.kt new file mode 100644 index 00000000000..b7036562f38 --- /dev/null +++ b/js/js.translator/testData/box/expression/misc/exclExclResultIsComputedOnce.kt @@ -0,0 +1,12 @@ +package foo + +var c = 0 +val a: Int? + get() { + c++ + return 2 + } + +fun box(): String { + return if (c == 0 && (a!! + 3) == 5 && c == 1) return "OK" else "fail" +} \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/misc/exclExclThrows.kt b/js/js.translator/testData/box/expression/misc/exclExclThrows.kt new file mode 100644 index 00000000000..5e8c7ea6857 --- /dev/null +++ b/js/js.translator/testData/box/expression/misc/exclExclThrows.kt @@ -0,0 +1,14 @@ +package foo + + +fun box(): String { + val a: Int? = null + + try { + if ((a!! + 3) == 3) return "fail1" + } + catch (e: Throwable) { + return "OK" + } + return "fail2" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/extensionLiteralCalledInsideExtensionFunction.kt b/js/js.translator/testData/box/expression/misc/extensionLiteralCalledInsideExtensionFunction.kt similarity index 69% rename from js/js.translator/testData/expression/misc/cases/extensionLiteralCalledInsideExtensionFunction.kt rename to js/js.translator/testData/box/expression/misc/extensionLiteralCalledInsideExtensionFunction.kt index 5a9974dfb48..080876f87c9 100644 --- a/js/js.translator/testData/expression/misc/cases/extensionLiteralCalledInsideExtensionFunction.kt +++ b/js/js.translator/testData/box/expression/misc/extensionLiteralCalledInsideExtensionFunction.kt @@ -5,11 +5,13 @@ fun A.create(init: A.() -> Unit): A { return this } -fun box(): Boolean { +fun box(): String { val a = A().create { c = 1 + t } - return a.c == 4 + if (a.c != 4) return "fail: ${a.c}" + + return "OK" } class A() { diff --git a/js/js.translator/testData/expression/misc/cases/extensionLiteralCreatedAtPackageLevel.kt b/js/js.translator/testData/box/expression/misc/extensionLiteralCreatedAtPackageLevel.kt similarity index 71% rename from js/js.translator/testData/expression/misc/cases/extensionLiteralCreatedAtPackageLevel.kt rename to js/js.translator/testData/box/expression/misc/extensionLiteralCreatedAtPackageLevel.kt index 7ac6c19926c..2ae3f8ade46 100644 --- a/js/js.translator/testData/expression/misc/cases/extensionLiteralCreatedAtPackageLevel.kt +++ b/js/js.translator/testData/box/expression/misc/extensionLiteralCreatedAtPackageLevel.kt @@ -16,4 +16,7 @@ val p: A.() -> Int = { val c = A().a(p) -fun box() = (c == 1) +fun box(): String { + if (c != 1) return "fail: $c" + return "OK" +} diff --git a/js/js.translator/testData/expression/misc/cases/funInConstructor.kt b/js/js.translator/testData/box/expression/misc/funInConstructor.kt similarity index 72% rename from js/js.translator/testData/expression/misc/cases/funInConstructor.kt rename to js/js.translator/testData/box/expression/misc/funInConstructor.kt index 0483f125ade..f7006f7bd6b 100644 --- a/js/js.translator/testData/expression/misc/cases/funInConstructor.kt +++ b/js/js.translator/testData/box/expression/misc/funInConstructor.kt @@ -1,7 +1,7 @@ package foo class A() { - fun lold() = true + fun lold() = "OK" val p = { { @@ -10,6 +10,6 @@ class A() { } } -fun box(): Boolean { +fun box(): String { return A().p() } diff --git a/js/js.translator/testData/expression/misc/cases/funInConstructorBlock.kt b/js/js.translator/testData/box/expression/misc/funInConstructorBlock.kt similarity index 58% rename from js/js.translator/testData/expression/misc/cases/funInConstructorBlock.kt rename to js/js.translator/testData/box/expression/misc/funInConstructorBlock.kt index d033dba82af..8798e9fb9b3 100644 --- a/js/js.translator/testData/expression/misc/cases/funInConstructorBlock.kt +++ b/js/js.translator/testData/box/expression/misc/funInConstructorBlock.kt @@ -1,14 +1,14 @@ package foo class A() { - fun lold() = true - val p: () -> Boolean + fun lold() = "OK" + val p: () -> String init { p = { { lold() }() } } } -fun box(): Boolean { +fun box(): String { return A().p() } diff --git a/js/js.translator/testData/expression/misc/cases/inheritFromJetIterator.kt b/js/js.translator/testData/box/expression/misc/inheritFromJetIterator.kt similarity index 64% rename from js/js.translator/testData/expression/misc/cases/inheritFromJetIterator.kt rename to js/js.translator/testData/box/expression/misc/inheritFromJetIterator.kt index 4151df02e5a..90f2073eb22 100644 --- a/js/js.translator/testData/expression/misc/cases/inheritFromJetIterator.kt +++ b/js/js.translator/testData/box/expression/misc/inheritFromJetIterator.kt @@ -8,4 +8,6 @@ class TabIterator : Iterator { } } -fun box() = !TabIterator().hasNext() +fun box(): String { + return if (!TabIterator().hasNext()) return "OK" else "fail" +} diff --git a/js/js.translator/testData/expression/misc/cases/intRange.kt b/js/js.translator/testData/box/expression/misc/intRange.kt similarity index 96% rename from js/js.translator/testData/expression/misc/cases/intRange.kt rename to js/js.translator/testData/box/expression/misc/intRange.kt index d03f191f6be..84cedd34e13 100644 --- a/js/js.translator/testData/expression/misc/cases/intRange.kt +++ b/js/js.translator/testData/box/expression/misc/intRange.kt @@ -38,7 +38,9 @@ class NumberRange(val start: Int, val size: Int, val reversed: Boolean) { } -fun box() = testRange() && testReversedRange(); +fun box(): String { + return if (testRange() && testReversedRange()) "OK" else "fail" +} fun testRange(): Boolean { diff --git a/js/js.translator/testData/expression/misc/cases/kt9443.kt b/js/js.translator/testData/box/expression/misc/kt9443.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/kt9443.kt rename to js/js.translator/testData/box/expression/misc/kt9443.kt diff --git a/js/js.translator/testData/box/expression/misc/lazyProperty.kt b/js/js.translator/testData/box/expression/misc/lazyProperty.kt new file mode 100644 index 00000000000..59c06034179 --- /dev/null +++ b/js/js.translator/testData/box/expression/misc/lazyProperty.kt @@ -0,0 +1,20 @@ +var log = "" + +fun printlnLog(message: Any) { + log += "$message\n" +} + +fun box(): String { + printlnLog("Hello, world!") + printlnLog(p) + + if (log != "Hello, world!\nGotcha\n3\n") return "fail: $log" + return "OK" +} + + +val p: Int + get() { + printlnLog("Gotcha") + return 3 + } \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/localProperty.kt b/js/js.translator/testData/box/expression/misc/localProperty.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/localProperty.kt rename to js/js.translator/testData/box/expression/misc/localProperty.kt diff --git a/js/js.translator/testData/expression/misc/cases/localVarAsFunction.kt b/js/js.translator/testData/box/expression/misc/localVarAsFunction.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/localVarAsFunction.kt rename to js/js.translator/testData/box/expression/misc/localVarAsFunction.kt diff --git a/js/js.translator/testData/expression/misc/cases/packageLevelVarInPackage.kt b/js/js.translator/testData/box/expression/misc/packageLevelVarInPackage.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/packageLevelVarInPackage.kt rename to js/js.translator/testData/box/expression/misc/packageLevelVarInPackage.kt diff --git a/js/js.translator/testData/expression/misc/cases/packageLevelVarInRoot.kt b/js/js.translator/testData/box/expression/misc/packageLevelVarInRoot.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/packageLevelVarInRoot.kt rename to js/js.translator/testData/box/expression/misc/packageLevelVarInRoot.kt diff --git a/js/js.translator/testData/box/expression/misc/packagePropertyCalledAsFun.kt b/js/js.translator/testData/box/expression/misc/packagePropertyCalledAsFun.kt new file mode 100644 index 00000000000..146862a9f74 --- /dev/null +++ b/js/js.translator/testData/box/expression/misc/packagePropertyCalledAsFun.kt @@ -0,0 +1,11 @@ +package foo + +fun lold() = true + +val p = { { lold() }() } + +fun box(): String { + if (!p()) return "fail1" + if (!foo.p()) return "fail2" + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/propertiesWithExplicitlyDefinedAccessorsWithoutBodies.kt b/js/js.translator/testData/box/expression/misc/propertiesWithExplicitlyDefinedAccessorsWithoutBodies.kt similarity index 52% rename from js/js.translator/testData/expression/misc/cases/propertiesWithExplicitlyDefinedAccessorsWithoutBodies.kt rename to js/js.translator/testData/box/expression/misc/propertiesWithExplicitlyDefinedAccessorsWithoutBodies.kt index 378777cf676..f6a072e02db 100644 --- a/js/js.translator/testData/expression/misc/cases/propertiesWithExplicitlyDefinedAccessorsWithoutBodies.kt +++ b/js/js.translator/testData/box/expression/misc/propertiesWithExplicitlyDefinedAccessorsWithoutBodies.kt @@ -9,6 +9,8 @@ class A() { fun f() = c + 1 } -fun box(): Boolean { - return A().f() == 4 +fun box(): String { + val result = A().f() + if (result != 4) return "fail: $result" + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/propertyAsFunCalledOnConstructor.kt b/js/js.translator/testData/box/expression/misc/propertyAsFunCalledOnConstructor.kt similarity index 53% rename from js/js.translator/testData/expression/misc/cases/propertyAsFunCalledOnConstructor.kt rename to js/js.translator/testData/box/expression/misc/propertyAsFunCalledOnConstructor.kt index 3c84eaca999..312b29afe50 100644 --- a/js/js.translator/testData/expression/misc/cases/propertyAsFunCalledOnConstructor.kt +++ b/js/js.translator/testData/box/expression/misc/propertyAsFunCalledOnConstructor.kt @@ -1,10 +1,10 @@ package foo class A() { - val p = { true } + val p = { "OK" } } -fun box(): Boolean { +fun box(): String { return A().p() } \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/rightAssocForGeneratedConditionalOperator.kt b/js/js.translator/testData/box/expression/misc/rightAssocForGeneratedConditionalOperator.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/rightAssocForGeneratedConditionalOperator.kt rename to js/js.translator/testData/box/expression/misc/rightAssocForGeneratedConditionalOperator.kt diff --git a/js/js.translator/testData/box/expression/misc/safeCallComputesExpressionOnlyOnce.kt b/js/js.translator/testData/box/expression/misc/safeCallComputesExpressionOnlyOnce.kt new file mode 100644 index 00000000000..739685f3c52 --- /dev/null +++ b/js/js.translator/testData/box/expression/misc/safeCallComputesExpressionOnlyOnce.kt @@ -0,0 +1,14 @@ +package foo + +var i = 0 + +fun test(): Int? = i++ + +fun box(): String { + if (i != 0) return "fail1: $i" + test()?.plus(1) + if (i != 1) return "fail2: $i" + test()?.minus(2) + if (i != 2) return "fail3: $i" + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/stringInterpolationEvaluationOrder.kt b/js/js.translator/testData/box/expression/misc/stringInterpolationEvaluationOrder.kt similarity index 83% rename from js/js.translator/testData/expression/misc/cases/stringInterpolationEvaluationOrder.kt rename to js/js.translator/testData/box/expression/misc/stringInterpolationEvaluationOrder.kt index f80820bef8e..ad46f1751b1 100644 --- a/js/js.translator/testData/expression/misc/cases/stringInterpolationEvaluationOrder.kt +++ b/js/js.translator/testData/box/expression/misc/stringInterpolationEvaluationOrder.kt @@ -27,7 +27,7 @@ class B() { } } -fun box(): Any? { +fun box(): String { B().test() - return if (s != "12345") s else true + return if (s != "12345") "fail: $s" else "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/misc/temporaryVariableCreatedInPackageInitializer.kt b/js/js.translator/testData/box/expression/misc/temporaryVariableCreatedInPackageInitializer.kt new file mode 100644 index 00000000000..cde6c00218b --- /dev/null +++ b/js/js.translator/testData/box/expression/misc/temporaryVariableCreatedInPackageInitializer.kt @@ -0,0 +1,8 @@ +package foo + +var p = 0 +val c = p++ // creates temporary value + +fun box(): String { + return if ((p == 1) && (c == 0)) "OK" else "fail" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/throwThrow.kt b/js/js.translator/testData/box/expression/misc/throwThrow.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/throwThrow.kt rename to js/js.translator/testData/box/expression/misc/throwThrow.kt diff --git a/js/js.translator/testData/expression/misc/cases/toGeneratorInStdlib.kt b/js/js.translator/testData/box/expression/misc/toGeneratorInStdlib.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/toGeneratorInStdlib.kt rename to js/js.translator/testData/box/expression/misc/toGeneratorInStdlib.kt diff --git a/js/js.translator/testData/box/expression/misc/whenReturnedWithoutBlock.kt b/js/js.translator/testData/box/expression/misc/whenReturnedWithoutBlock.kt new file mode 100644 index 00000000000..bbbe405e421 --- /dev/null +++ b/js/js.translator/testData/box/expression/misc/whenReturnedWithoutBlock.kt @@ -0,0 +1,20 @@ +package foo + +fun box(): String { + if (t(1) != 0) { + return "fail1" + } + if (t(0) != 1) { + return "fail2" + } + if (t(100) != 2) { + return "fail3" + } + return "OK" +} + +fun t(i: Int) = when(i) { + 0 -> 1 + 1 -> 0 + else -> 2 +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/string/cases/extensionMethods.kt b/js/js.translator/testData/box/expression/stringClass/extensionMethods.kt similarity index 100% rename from js/js.translator/testData/expression/string/cases/extensionMethods.kt rename to js/js.translator/testData/box/expression/stringClass/extensionMethods.kt diff --git a/js/js.translator/testData/expression/string/cases/intInTemplate.kt b/js/js.translator/testData/box/expression/stringClass/intInTemplate.kt similarity index 100% rename from js/js.translator/testData/expression/string/cases/intInTemplate.kt rename to js/js.translator/testData/box/expression/stringClass/intInTemplate.kt diff --git a/js/js.translator/testData/box/expression/stringClass/kt2227.kt b/js/js.translator/testData/box/expression/stringClass/kt2227.kt new file mode 100644 index 00000000000..e31b708a453 --- /dev/null +++ b/js/js.translator/testData/box/expression/stringClass/kt2227.kt @@ -0,0 +1,6 @@ +package foo + +fun box(): String { + if ("${3}" != "3") return "fail1" + return if ("${3}" == "3") "OK" else "fail2" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/string/cases/kt2227_2.kt b/js/js.translator/testData/box/expression/stringClass/kt2227_2.kt similarity index 65% rename from js/js.translator/testData/expression/string/cases/kt2227_2.kt rename to js/js.translator/testData/box/expression/stringClass/kt2227_2.kt index 0b0320b1426..32a5637d779 100644 --- a/js/js.translator/testData/expression/string/cases/kt2227_2.kt +++ b/js/js.translator/testData/box/expression/stringClass/kt2227_2.kt @@ -9,8 +9,8 @@ class A() { } } -fun box(): Boolean { +fun box(): String { val a = A() val s = "$a == $a" - return s == "bar == bar" && i == 2 + return if (s == "bar == bar" && i == 2) "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/string/cases/multipleExpressionsInTemplate.kt b/js/js.translator/testData/box/expression/stringClass/multipleExpressionsInTemplate.kt similarity index 100% rename from js/js.translator/testData/expression/string/cases/multipleExpressionsInTemplate.kt rename to js/js.translator/testData/box/expression/stringClass/multipleExpressionsInTemplate.kt diff --git a/js/js.translator/testData/expression/string/cases/nullableTypeInStringTemplate.kt b/js/js.translator/testData/box/expression/stringClass/nullableTypeInStringTemplate.kt similarity index 100% rename from js/js.translator/testData/expression/string/cases/nullableTypeInStringTemplate.kt rename to js/js.translator/testData/box/expression/stringClass/nullableTypeInStringTemplate.kt diff --git a/js/js.translator/testData/expression/string/cases/numbersInTemplate.kt b/js/js.translator/testData/box/expression/stringClass/numbersInTemplate.kt similarity index 100% rename from js/js.translator/testData/expression/string/cases/numbersInTemplate.kt rename to js/js.translator/testData/box/expression/stringClass/numbersInTemplate.kt diff --git a/js/js.translator/testData/expression/string/cases/objectToStringCallInTemplate.kt b/js/js.translator/testData/box/expression/stringClass/objectToStringCallInTemplate.kt similarity index 69% rename from js/js.translator/testData/expression/string/cases/objectToStringCallInTemplate.kt rename to js/js.translator/testData/box/expression/stringClass/objectToStringCallInTemplate.kt index 298dd6cfe8e..af3fb514dc4 100644 --- a/js/js.translator/testData/expression/string/cases/objectToStringCallInTemplate.kt +++ b/js/js.translator/testData/box/expression/stringClass/objectToStringCallInTemplate.kt @@ -4,15 +4,15 @@ class A(var i: Int) { override fun toString() = "a$i" } -fun box(): Boolean { +fun box(): String { var p = A(2); var n = A(1); if ("$p$n" != "a2a1") { - return false; + return "fail1" } if ("${A(10)}" != "a10") { - return false; + return "fail2" } - return true; + return "OK" } diff --git a/js/js.translator/testData/expression/string/cases/stringAssignment.kt b/js/js.translator/testData/box/expression/stringClass/stringAssignment.kt similarity index 50% rename from js/js.translator/testData/expression/string/cases/stringAssignment.kt rename to js/js.translator/testData/box/expression/stringClass/stringAssignment.kt index ace91c6b4c0..98f766b8c6a 100644 --- a/js/js.translator/testData/expression/string/cases/stringAssignment.kt +++ b/js/js.translator/testData/box/expression/stringClass/stringAssignment.kt @@ -1,10 +1,10 @@ package foo -fun box(): Boolean { +fun box(): String { val a = "bar"; var b = "foo"; b = a; - return (b == "bar"); + return if (b == "bar") "OK" else "fail" } diff --git a/js/js.translator/testData/expression/string/cases/stringConstant.kt b/js/js.translator/testData/box/expression/stringClass/stringConstant.kt similarity index 50% rename from js/js.translator/testData/expression/string/cases/stringConstant.kt rename to js/js.translator/testData/box/expression/stringClass/stringConstant.kt index 568a2962308..783b0bb5eb0 100644 --- a/js/js.translator/testData/expression/string/cases/stringConstant.kt +++ b/js/js.translator/testData/box/expression/stringClass/stringConstant.kt @@ -1,8 +1,8 @@ package foo -fun box(): Boolean { +fun box(): String { val a = "String"; - return true; + return "OK"; } diff --git a/js/js.translator/testData/expression/string/cases/stringInTemplate.kt b/js/js.translator/testData/box/expression/stringClass/stringInTemplate.kt similarity index 100% rename from js/js.translator/testData/expression/string/cases/stringInTemplate.kt rename to js/js.translator/testData/box/expression/stringClass/stringInTemplate.kt diff --git a/js/js.translator/testData/expression/string/cases/stringNotEqualToNumber.kt b/js/js.translator/testData/box/expression/stringClass/stringNotEqualToNumber.kt similarity index 51% rename from js/js.translator/testData/expression/string/cases/stringNotEqualToNumber.kt rename to js/js.translator/testData/box/expression/stringClass/stringNotEqualToNumber.kt index 916260ab9ad..538d0187f5c 100644 --- a/js/js.translator/testData/expression/string/cases/stringNotEqualToNumber.kt +++ b/js/js.translator/testData/box/expression/stringClass/stringNotEqualToNumber.kt @@ -1,11 +1,11 @@ package foo -fun box(): Boolean { +fun box(): String { val t1: Any = "3" val t2: Any = 3 val t3: Any = "4" val t4: Any = 4 - if (t3 == t4) return false - return t1 != t2 + if (t3 == t4) return "fail" + return if (t1 != t2) "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/string/cases/stringSplit.kt b/js/js.translator/testData/box/expression/stringClass/stringSplit.kt similarity index 100% rename from js/js.translator/testData/expression/string/cases/stringSplit.kt rename to js/js.translator/testData/box/expression/stringClass/stringSplit.kt diff --git a/js/js.translator/testData/expression/string/cases/subSequence.kt b/js/js.translator/testData/box/expression/stringClass/subSequence.kt similarity index 100% rename from js/js.translator/testData/expression/string/cases/subSequence.kt rename to js/js.translator/testData/box/expression/stringClass/subSequence.kt diff --git a/js/js.translator/testData/expression/stringTemplates/cases/objectWithToString.kt b/js/js.translator/testData/box/expression/stringTemplates/objectWithToString.kt similarity index 100% rename from js/js.translator/testData/expression/stringTemplates/cases/objectWithToString.kt rename to js/js.translator/testData/box/expression/stringTemplates/objectWithToString.kt diff --git a/js/js.translator/testData/expression/stringTemplates/cases/stringValues.kt b/js/js.translator/testData/box/expression/stringTemplates/stringValues.kt similarity index 60% rename from js/js.translator/testData/expression/stringTemplates/cases/stringValues.kt rename to js/js.translator/testData/box/expression/stringTemplates/stringValues.kt index 736733f858e..70a2755f475 100644 --- a/js/js.translator/testData/expression/stringTemplates/cases/stringValues.kt +++ b/js/js.translator/testData/box/expression/stringTemplates/stringValues.kt @@ -5,15 +5,15 @@ public class Fe { fun open(method: String, url: String, async: Boolean = true, user: String = "", password: String = "") = "$method $url $async $user $password" } -fun box(): Boolean { +fun box(): String { val a = "abc" val b = "def" val message = "a = $a, b = $b" - if (message != "a = abc, b = def") return false + if (message != "a = abc, b = def") return "fail" val v1 = null - if ("returns null null" != "returns $v1 ${null}") return false + if ("returns null null" != "returns $v1 ${null}") return "fail" - return Fe().open("22", "33") == "22 33 true " + return if (Fe().open("22", "33") == "22 33 true ") "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/try/cases/multipleCatchBlocks.kt b/js/js.translator/testData/box/expression/try/multipleCatchBlocks.kt similarity index 100% rename from js/js.translator/testData/expression/try/cases/multipleCatchBlocks.kt rename to js/js.translator/testData/box/expression/try/multipleCatchBlocks.kt diff --git a/js/js.translator/testData/expression/try/cases/rethrowExceptionIfNotCaught.kt b/js/js.translator/testData/box/expression/try/rethrowExceptionIfNotCaught.kt similarity index 100% rename from js/js.translator/testData/expression/try/cases/rethrowExceptionIfNotCaught.kt rename to js/js.translator/testData/box/expression/try/rethrowExceptionIfNotCaught.kt diff --git a/js/js.translator/testData/expression/try/cases/tryCatchCorrectForSubclasses.kt b/js/js.translator/testData/box/expression/try/tryCatchCorrectForSubclasses.kt similarity index 100% rename from js/js.translator/testData/expression/try/cases/tryCatchCorrectForSubclasses.kt rename to js/js.translator/testData/box/expression/try/tryCatchCorrectForSubclasses.kt diff --git a/js/js.translator/testData/expression/try/cases/tryCatchExpr.kt b/js/js.translator/testData/box/expression/try/tryCatchExpr.kt similarity index 100% rename from js/js.translator/testData/expression/try/cases/tryCatchExpr.kt rename to js/js.translator/testData/box/expression/try/tryCatchExpr.kt diff --git a/js/js.translator/testData/expression/try/cases/tryCatchExpressionWithMessage.kt b/js/js.translator/testData/box/expression/try/tryCatchExpressionWithMessage.kt similarity index 100% rename from js/js.translator/testData/expression/try/cases/tryCatchExpressionWithMessage.kt rename to js/js.translator/testData/box/expression/try/tryCatchExpressionWithMessage.kt diff --git a/js/js.translator/testData/expression/try/cases/tryCatchThrowable.kt b/js/js.translator/testData/box/expression/try/tryCatchThrowable.kt similarity index 100% rename from js/js.translator/testData/expression/try/cases/tryCatchThrowable.kt rename to js/js.translator/testData/box/expression/try/tryCatchThrowable.kt diff --git a/js/js.translator/testData/expression/try/cases/tryCatchWithDifferentParameterNames.kt b/js/js.translator/testData/box/expression/try/tryCatchWithDifferentParameterNames.kt similarity index 100% rename from js/js.translator/testData/expression/try/cases/tryCatchWithDifferentParameterNames.kt rename to js/js.translator/testData/box/expression/try/tryCatchWithDifferentParameterNames.kt diff --git a/js/js.translator/testData/box/expression/when/doWhileWithOneStmWhen.kt b/js/js.translator/testData/box/expression/when/doWhileWithOneStmWhen.kt new file mode 100644 index 00000000000..20dc98ab4e1 --- /dev/null +++ b/js/js.translator/testData/box/expression/when/doWhileWithOneStmWhen.kt @@ -0,0 +1,15 @@ +package foo + + +fun box(): String { + var result = "fail1" + var i = 1 + do + when (i) { + 1 -> result = "OK" + else -> result = "fail2" + } + while (i==0) + return result +} + diff --git a/js/js.translator/testData/expression/when/cases/empty.kt b/js/js.translator/testData/box/expression/when/empty.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/empty.kt rename to js/js.translator/testData/box/expression/when/empty.kt diff --git a/js/js.translator/testData/box/expression/when/forWithOneStmWhen.kt b/js/js.translator/testData/box/expression/when/forWithOneStmWhen.kt new file mode 100644 index 00000000000..56f4e603a0f --- /dev/null +++ b/js/js.translator/testData/box/expression/when/forWithOneStmWhen.kt @@ -0,0 +1,13 @@ +package foo + + +fun box(): String { + var result = "fail1" + for (i in arrayOf(1)) + when (i) { + 1 -> result = "OK" + else -> result = "fail2" + } + return result +} + diff --git a/js/js.translator/testData/expression/when/cases/ifInWhen.kt b/js/js.translator/testData/box/expression/when/ifInWhen.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/ifInWhen.kt rename to js/js.translator/testData/box/expression/when/ifInWhen.kt diff --git a/js/js.translator/testData/expression/when/cases/ifInWhenDanglingElseIssue.kt b/js/js.translator/testData/box/expression/when/ifInWhenDanglingElseIssue.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/ifInWhenDanglingElseIssue.kt rename to js/js.translator/testData/box/expression/when/ifInWhenDanglingElseIssue.kt diff --git a/js/js.translator/testData/box/expression/when/ifWithOneStmWhen.kt b/js/js.translator/testData/box/expression/when/ifWithOneStmWhen.kt new file mode 100644 index 00000000000..1c0d114e644 --- /dev/null +++ b/js/js.translator/testData/box/expression/when/ifWithOneStmWhen.kt @@ -0,0 +1,13 @@ +package foo + + +fun box(): String { + var result = "fail1" + var i = 1 + if (i==1) + when (i) { + 1 -> result = "OK" + else -> result = "fail2" + } + return result +} diff --git a/js/js.translator/testData/expression/when/cases/kt1665.kt b/js/js.translator/testData/box/expression/when/kt1665.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/kt1665.kt rename to js/js.translator/testData/box/expression/when/kt1665.kt diff --git a/js/js.translator/testData/box/expression/when/matchNullableType.kt b/js/js.translator/testData/box/expression/when/matchNullableType.kt new file mode 100644 index 00000000000..1f3058bb49b --- /dev/null +++ b/js/js.translator/testData/box/expression/when/matchNullableType.kt @@ -0,0 +1,13 @@ +package foo + +class A() { + +} + +fun box(): String { + var a: A? = null + when(a) { + is A? -> return "OK" + else -> return "fail" + } +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/multipleCases.kt b/js/js.translator/testData/box/expression/when/multipleCases.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/multipleCases.kt rename to js/js.translator/testData/box/expression/when/multipleCases.kt diff --git a/js/js.translator/testData/box/expression/when/whenAsExpression.kt b/js/js.translator/testData/box/expression/when/whenAsExpression.kt new file mode 100644 index 00000000000..70f320904df --- /dev/null +++ b/js/js.translator/testData/box/expression/when/whenAsExpression.kt @@ -0,0 +1,13 @@ +package foo + + +fun box(): String { + + val success = (when(1) { + 2 -> 3 + 1 -> 1 + else -> 5 + } == 1) + + return if (success) "OK" else "fail" +} \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/when/whenAsExpressionWithThrow.kt b/js/js.translator/testData/box/expression/when/whenAsExpressionWithThrow.kt new file mode 100644 index 00000000000..f922a4b89bd --- /dev/null +++ b/js/js.translator/testData/box/expression/when/whenAsExpressionWithThrow.kt @@ -0,0 +1,22 @@ +package foo + +fun box(): String { + + try { + (when (1) { + 3 -> { + 3 + } + 1 -> { + throw Exception() + } + else -> { + return "fail1" + } + }) + } catch (e: Exception) { + return "OK" + } + + return "fail2" +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenConditionWithReturn.kt b/js/js.translator/testData/box/expression/when/whenConditionWithReturn.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/whenConditionWithReturn.kt rename to js/js.translator/testData/box/expression/when/whenConditionWithReturn.kt diff --git a/js/js.translator/testData/expression/when/cases/whenEqualsPattern.kt b/js/js.translator/testData/box/expression/when/whenEqualsPattern.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/whenEqualsPattern.kt rename to js/js.translator/testData/box/expression/when/whenEqualsPattern.kt diff --git a/js/js.translator/testData/expression/when/cases/whenEvaluatesArgumentOnlyOnce.kt b/js/js.translator/testData/box/expression/when/whenEvaluatesArgumentOnlyOnce.kt similarity index 62% rename from js/js.translator/testData/expression/when/cases/whenEvaluatesArgumentOnlyOnce.kt rename to js/js.translator/testData/box/expression/when/whenEvaluatesArgumentOnlyOnce.kt index 66f576e571f..0c2fe13f249 100644 --- a/js/js.translator/testData/expression/when/cases/whenEvaluatesArgumentOnlyOnce.kt +++ b/js/js.translator/testData/box/expression/when/whenEvaluatesArgumentOnlyOnce.kt @@ -1,6 +1,6 @@ package foo -fun box(): Boolean { +fun box(): String { var a = 0 var i = 0 when(i++) { @@ -8,5 +8,6 @@ fun box(): Boolean { 100 -> a++ else -> a++ } - return (a == 1) && (i == 1) + + return if ((a == 1) && (i == 1)) "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenExecutesOnlyOnce.kt b/js/js.translator/testData/box/expression/when/whenExecutesOnlyOnce.kt similarity index 64% rename from js/js.translator/testData/expression/when/cases/whenExecutesOnlyOnce.kt rename to js/js.translator/testData/box/expression/when/whenExecutesOnlyOnce.kt index 4d910a39e15..6eaea3b0b9a 100644 --- a/js/js.translator/testData/expression/when/cases/whenExecutesOnlyOnce.kt +++ b/js/js.translator/testData/box/expression/when/whenExecutesOnlyOnce.kt @@ -4,12 +4,13 @@ class A() { } -fun box(): Boolean { +fun box(): String { var a = 0 when(A()) { is A -> a++; is A -> a++; else -> a++; } - return (a == 1) + if (a != 1) return "fail: $a" + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/when/whenNotType.kt b/js/js.translator/testData/box/expression/when/whenNotType.kt new file mode 100644 index 00000000000..65df46d07b8 --- /dev/null +++ b/js/js.translator/testData/box/expression/when/whenNotType.kt @@ -0,0 +1,12 @@ +package foo + +class A() { + +} + +fun box(): String { + when(A()) { + !is A -> return "fail" + else -> return "OK" + } +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenStatementWithRangeClause.kt b/js/js.translator/testData/box/expression/when/whenStatementWithRangeClause.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/whenStatementWithRangeClause.kt rename to js/js.translator/testData/box/expression/when/whenStatementWithRangeClause.kt diff --git a/js/js.translator/testData/box/expression/when/whenType.kt b/js/js.translator/testData/box/expression/when/whenType.kt new file mode 100644 index 00000000000..cc43252bcd4 --- /dev/null +++ b/js/js.translator/testData/box/expression/when/whenType.kt @@ -0,0 +1,12 @@ +package foo + +class A() { + +} + +fun box(): String { + when(A()) { + is A -> return "OK" + else -> return "fail" + } +} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenValue.kt b/js/js.translator/testData/box/expression/when/whenValue.kt similarity index 72% rename from js/js.translator/testData/expression/when/cases/whenValue.kt rename to js/js.translator/testData/box/expression/when/whenValue.kt index 4a75b074649..4bd1506c02c 100644 --- a/js/js.translator/testData/expression/when/cases/whenValue.kt +++ b/js/js.translator/testData/box/expression/when/whenValue.kt @@ -1,6 +1,6 @@ package foo -fun box(): Boolean { +fun box(): String { var a = 4 when(a) { 3 -> { @@ -13,5 +13,7 @@ fun box(): Boolean { a = 30; } } - return (a == 20) + if (a != 20) return "fail: $a" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenValueOrType.kt b/js/js.translator/testData/box/expression/when/whenValueOrType.kt similarity index 81% rename from js/js.translator/testData/expression/when/cases/whenValueOrType.kt rename to js/js.translator/testData/box/expression/when/whenValueOrType.kt index b2d1bb8dfb1..b57a747cb67 100644 --- a/js/js.translator/testData/expression/when/cases/whenValueOrType.kt +++ b/js/js.translator/testData/box/expression/when/whenValueOrType.kt @@ -8,7 +8,7 @@ class B() { } -fun box(): Boolean { +fun box(): String { var c: Int = 0 var a: Any? = A() var b: Any? = null @@ -23,5 +23,8 @@ fun box(): Boolean { is B -> c += 100 else -> c = 1000 } - return (c == 25) + + if (c != 25) return "fail: $c" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenWithCharRangeClause.kt b/js/js.translator/testData/box/expression/when/whenWithCharRangeClause.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/whenWithCharRangeClause.kt rename to js/js.translator/testData/box/expression/when/whenWithCharRangeClause.kt diff --git a/js/js.translator/testData/expression/when/cases/whenWithCustomRangeClause.kt b/js/js.translator/testData/box/expression/when/whenWithCustomRangeClause.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/whenWithCustomRangeClause.kt rename to js/js.translator/testData/box/expression/when/whenWithCustomRangeClause.kt diff --git a/js/js.translator/testData/expression/when/cases/whenWithIf.kt b/js/js.translator/testData/box/expression/when/whenWithIf.kt similarity index 82% rename from js/js.translator/testData/expression/when/cases/whenWithIf.kt rename to js/js.translator/testData/box/expression/when/whenWithIf.kt index e4abf41920f..bad7ade531b 100644 --- a/js/js.translator/testData/expression/when/cases/whenWithIf.kt +++ b/js/js.translator/testData/box/expression/when/whenWithIf.kt @@ -1,6 +1,6 @@ package foo -fun box(): Boolean { +fun box(): String { var c = when(3) { 3 -> 1 @@ -20,5 +20,7 @@ fun box(): Boolean { else -> 100 } - return c == 3 + if (c != 3) return "fail" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenWithIfConditionAndOnlyElse.kt b/js/js.translator/testData/box/expression/when/whenWithIfConditionAndOnlyElse.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/whenWithIfConditionAndOnlyElse.kt rename to js/js.translator/testData/box/expression/when/whenWithIfConditionAndOnlyElse.kt diff --git a/js/js.translator/testData/expression/when/cases/whenWithLongRangeClause.kt b/js/js.translator/testData/box/expression/when/whenWithLongRangeClause.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/whenWithLongRangeClause.kt rename to js/js.translator/testData/box/expression/when/whenWithLongRangeClause.kt diff --git a/js/js.translator/testData/box/expression/when/whenWithOneStmWhen.kt b/js/js.translator/testData/box/expression/when/whenWithOneStmWhen.kt new file mode 100644 index 00000000000..5e7d3085285 --- /dev/null +++ b/js/js.translator/testData/box/expression/when/whenWithOneStmWhen.kt @@ -0,0 +1,22 @@ +package foo + + +fun box(): String { + var result = "fail1" + val i = 1 + when (i) { + 1 -> + when (i) { + 1 -> result = "OK" + else -> result = "fail2" + } + + else -> + when (i) { + 1 -> result = "OK" + else -> result = "fail3" + } + } + + return result +} diff --git a/js/js.translator/testData/expression/when/cases/whenWithOnlyElse.kt b/js/js.translator/testData/box/expression/when/whenWithOnlyElse.kt similarity index 51% rename from js/js.translator/testData/expression/when/cases/whenWithOnlyElse.kt rename to js/js.translator/testData/box/expression/when/whenWithOnlyElse.kt index 2339c758d84..4c6d469e809 100644 --- a/js/js.translator/testData/expression/when/cases/whenWithOnlyElse.kt +++ b/js/js.translator/testData/box/expression/when/whenWithOnlyElse.kt @@ -1,9 +1,11 @@ package foo -fun box(): Boolean { +fun box(): String { var a = 0 when (a) { else -> a = 2 } - return a == 2 + if (a != 2) return "fail" + + return "OK" } diff --git a/js/js.translator/testData/expression/when/cases/whenWithRangeClause.kt b/js/js.translator/testData/box/expression/when/whenWithRangeClause.kt similarity index 100% rename from js/js.translator/testData/expression/when/cases/whenWithRangeClause.kt rename to js/js.translator/testData/box/expression/when/whenWithRangeClause.kt diff --git a/js/js.translator/testData/box/expression/when/whenWithoutExpression.kt b/js/js.translator/testData/box/expression/when/whenWithoutExpression.kt new file mode 100644 index 00000000000..e85ccb6fe12 --- /dev/null +++ b/js/js.translator/testData/box/expression/when/whenWithoutExpression.kt @@ -0,0 +1,6 @@ +package foo + +fun box() = when { + 1 > 3 -> "fail" + else -> "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/when/whileWithOneStmWhen.kt b/js/js.translator/testData/box/expression/when/whileWithOneStmWhen.kt new file mode 100644 index 00000000000..91d73f717a1 --- /dev/null +++ b/js/js.translator/testData/box/expression/when/whileWithOneStmWhen.kt @@ -0,0 +1,14 @@ +package foo + + +fun box(): String { + var result = "fail1" + var i = 1 + loop@ while(i==1) + when (i) { + 1 -> { result = "OK"; break@loop } + else -> result = "fail" + } + return result +} + diff --git a/js/js.translator/testData/expression/while/cases/doWhileWithComplexCondition.kt b/js/js.translator/testData/box/expression/while/doWhileWithComplexCondition.kt similarity index 100% rename from js/js.translator/testData/expression/while/cases/doWhileWithComplexCondition.kt rename to js/js.translator/testData/box/expression/while/doWhileWithComplexCondition.kt diff --git a/js/js.translator/testData/expression/while/cases/doWhileWithComplexConditionAndContinue.kt b/js/js.translator/testData/box/expression/while/doWhileWithComplexConditionAndContinue.kt similarity index 100% rename from js/js.translator/testData/expression/while/cases/doWhileWithComplexConditionAndContinue.kt rename to js/js.translator/testData/box/expression/while/doWhileWithComplexConditionAndContinue.kt diff --git a/js/js.translator/testData/expression/while/cases/whileWithComplexCondition.kt b/js/js.translator/testData/box/expression/while/whileWithComplexCondition.kt similarity index 100% rename from js/js.translator/testData/expression/while/cases/whileWithComplexCondition.kt rename to js/js.translator/testData/box/expression/while/whileWithComplexCondition.kt diff --git a/js/js.translator/testData/expression/while/cases/whileWithComplexConditionAndContinue.kt b/js/js.translator/testData/box/expression/while/whileWithComplexConditionAndContinue.kt similarity index 100% rename from js/js.translator/testData/expression/while/cases/whileWithComplexConditionAndContinue.kt rename to js/js.translator/testData/box/expression/while/whileWithComplexConditionAndContinue.kt diff --git a/js/js.translator/testData/expression/while/cases/whileWithComplexOneStatement.kt b/js/js.translator/testData/box/expression/while/whileWithComplexOneStatement.kt similarity index 100% rename from js/js.translator/testData/expression/while/cases/whileWithComplexOneStatement.kt rename to js/js.translator/testData/box/expression/while/whileWithComplexOneStatement.kt diff --git a/js/js.translator/testData/expression/equals/cases/explicitEqualsMethodForPrimitives.kt b/js/js.translator/testData/expression/equals/cases/explicitEqualsMethodForPrimitives.kt deleted file mode 100644 index 261ae345cb1..00000000000 --- a/js/js.translator/testData/expression/equals/cases/explicitEqualsMethodForPrimitives.kt +++ /dev/null @@ -1,21 +0,0 @@ -package foo - -fun box(): Boolean { - val a = 2 - if (!(a.equals(a))) return false - if (!(a.equals(2))) return false - if (!(a.equals(2.0))) return false - val c = "a" - if (!("a".equals(c))) return false - if (!((null as Any?)?.equals(null) ?: true)) return false - val d = 5.6 - if (!(d.toShort().equals(5.toShort()))) return false - if (!(d.toByte().equals(5.toByte()))) return false - if (!(d.toFloat().equals(5.6.toFloat()))) return false - if (!(d.toInt().equals(5))) return false - if (true.equals(false)) return false - - val n: Number = 3 - if (!(n.equals(3.3.toInt()))) return false - return true -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/equals/cases/stringsEqual.kt b/js/js.translator/testData/expression/equals/cases/stringsEqual.kt deleted file mode 100644 index 9e5320a27dd..00000000000 --- a/js/js.translator/testData/expression/equals/cases/stringsEqual.kt +++ /dev/null @@ -1,12 +0,0 @@ -package foo - -fun box(): Boolean { - val a = "abc" - val b = "abc" - val c = "def" - - if (a != b) return false - if (a == c) return false - - return true -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/dangerousInline.kt b/js/js.translator/testData/expression/evaluationOrder/cases/dangerousInline.kt deleted file mode 100644 index a1ee985fe51..00000000000 --- a/js/js.translator/testData/expression/evaluationOrder/cases/dangerousInline.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -var i = 0 - -inline fun f() = i * 2 - -fun box(): Boolean { - return (++i + f()) == 3 -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/evaluationOrder/cases/ifAsFunArgument.kt b/js/js.translator/testData/expression/evaluationOrder/cases/ifAsFunArgument.kt deleted file mode 100644 index 5ecde62ebda..00000000000 --- a/js/js.translator/testData/expression/evaluationOrder/cases/ifAsFunArgument.kt +++ /dev/null @@ -1,13 +0,0 @@ -package foo - -fun box(): Boolean { - var i = 0 - val c = sum(++i, if (i == 0) return false else i + 2) - if (c != 4) { - return false - } - return true -} - - -fun sum(a1: Int, a2: Int) = a1 + a2 diff --git a/js/js.translator/testData/expression/function/cases/defaultParameters.kt b/js/js.translator/testData/expression/function/cases/defaultParameters.kt deleted file mode 100644 index 6256c675801..00000000000 --- a/js/js.translator/testData/expression/function/cases/defaultParameters.kt +++ /dev/null @@ -1,13 +0,0 @@ -package foo - -fun f(a: Int = 2, b: Int = 3) = a + b - -fun box(): Boolean { - if (f(1, 2) != 3) return false; - if (f(1, 3) != 4) return false; - if (f(3) != 6) return false; - if (f() != 5) return false; - - return true; -} - diff --git a/js/js.translator/testData/expression/function/cases/functionLiteralAsLastParameter.kt b/js/js.translator/testData/expression/function/cases/functionLiteralAsLastParameter.kt deleted file mode 100644 index 15a03e8b867..00000000000 --- a/js/js.translator/testData/expression/function/cases/functionLiteralAsLastParameter.kt +++ /dev/null @@ -1,14 +0,0 @@ -package foo - -fun f(a: (Int) -> Int) = a(1) - -fun box(): Boolean { - - if (f() { - it + 2 - } != 3) return false - - if (f() { a: Int -> a * 300 } != 300) return false; - - return true -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/function/cases/functionLiteralAsParameter.kt b/js/js.translator/testData/expression/function/cases/functionLiteralAsParameter.kt deleted file mode 100644 index 6f63b219417..00000000000 --- a/js/js.translator/testData/expression/function/cases/functionLiteralAsParameter.kt +++ /dev/null @@ -1,10 +0,0 @@ -package foo - -fun apply(f: (Int) -> Int, t: Int): Int { - return f(t) -} - - -fun box(): Boolean { - return apply({ a: Int -> a + 5 }, 3) == 8 -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/function/cases/functionUsedBeforeDeclaration.kt b/js/js.translator/testData/expression/function/cases/functionUsedBeforeDeclaration.kt deleted file mode 100644 index 2e8a2bd6bbd..00000000000 --- a/js/js.translator/testData/expression/function/cases/functionUsedBeforeDeclaration.kt +++ /dev/null @@ -1,12 +0,0 @@ -package foo - - -fun box(): Boolean { - return f() -} - -fun f(): Boolean { - return true -} - - diff --git a/js/js.translator/testData/expression/function/cases/implicitItParameter.kt b/js/js.translator/testData/expression/function/cases/implicitItParameter.kt deleted file mode 100644 index 60486f275c5..00000000000 --- a/js/js.translator/testData/expression/function/cases/implicitItParameter.kt +++ /dev/null @@ -1,12 +0,0 @@ -package foo - -fun test(f: (Int) -> Boolean, p: Int) = f(p) - -fun box(): Boolean { - if (!test({ it + 1 == 2 }, 1)) return false; - - if (!test({ it > 1 }, 3)) return false; - - return (test({ ((it < 1) == false) }, 1)) - -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/identifierClash/cases/useVariableOfNameOfFunction.kt b/js/js.translator/testData/expression/identifierClash/cases/useVariableOfNameOfFunction.kt deleted file mode 100644 index 9add05c375d..00000000000 --- a/js/js.translator/testData/expression/identifierClash/cases/useVariableOfNameOfFunction.kt +++ /dev/null @@ -1,6 +0,0 @@ -package foo - -fun box(): Boolean { - var box = "foo" - return true -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/if/cases/ifElseAsExpressionWithThrow.kt b/js/js.translator/testData/expression/if/cases/ifElseAsExpressionWithThrow.kt deleted file mode 100644 index f73f96b80dd..00000000000 --- a/js/js.translator/testData/expression/if/cases/ifElseAsExpressionWithThrow.kt +++ /dev/null @@ -1,3 +0,0 @@ -package foo - -fun box() = if (true) throw Exception() else false \ No newline at end of file diff --git a/js/js.translator/testData/expression/invoke/cases/invokeInFunctionLiteral.kt b/js/js.translator/testData/expression/invoke/cases/invokeInFunctionLiteral.kt deleted file mode 100644 index 113a93b0c21..00000000000 --- a/js/js.translator/testData/expression/invoke/cases/invokeInFunctionLiteral.kt +++ /dev/null @@ -1,10 +0,0 @@ -package foo - -fun box(): Boolean { - val v1 = { x: Int -> x}(2) - - val f = { x: Int -> x} - val v2 = (f)(2) - - return v1 == 2 && v2 == 2 -} diff --git a/js/js.translator/testData/expression/invoke/cases/invokeWithDispatchAndExtensionReceivers.kt b/js/js.translator/testData/expression/invoke/cases/invokeWithDispatchAndExtensionReceivers.kt deleted file mode 100644 index 7101730d301..00000000000 --- a/js/js.translator/testData/expression/invoke/cases/invokeWithDispatchAndExtensionReceivers.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -class A - -fun box(): Boolean { - val a = A() - val b = fun A.(i: Int) = i - return a.(b)(1) == 1 -} diff --git a/js/js.translator/testData/expression/invoke/cases/invokeWithDispatchReceiver.kt b/js/js.translator/testData/expression/invoke/cases/invokeWithDispatchReceiver.kt deleted file mode 100644 index 17bc211c384..00000000000 --- a/js/js.translator/testData/expression/invoke/cases/invokeWithDispatchReceiver.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -class A { - operator fun invoke(i: Int) = i -} - -fun box(): Boolean { - return A()(1) == 1 -} diff --git a/js/js.translator/testData/expression/invoke/cases/invokeWithExtensionReceiver.kt b/js/js.translator/testData/expression/invoke/cases/invokeWithExtensionReceiver.kt deleted file mode 100644 index c4ed18f31e7..00000000000 --- a/js/js.translator/testData/expression/invoke/cases/invokeWithExtensionReceiver.kt +++ /dev/null @@ -1,6 +0,0 @@ -package foo - -operator fun Int.invoke(x: Int) = this + x -fun box(): Boolean { - return 1(2) == 3 -} diff --git a/js/js.translator/testData/expression/misc/cases/classWithoutPackage.kt b/js/js.translator/testData/expression/misc/cases/classWithoutPackage.kt deleted file mode 100644 index 4eaea284798..00000000000 --- a/js/js.translator/testData/expression/misc/cases/classWithoutPackage.kt +++ /dev/null @@ -1,7 +0,0 @@ -class A(var a: Int) { - init { - a = 3 - } -} - -fun box() = (A(1).a == 3) diff --git a/js/js.translator/testData/expression/misc/cases/exclExcl.kt b/js/js.translator/testData/expression/misc/cases/exclExcl.kt deleted file mode 100644 index 86331bbeca4..00000000000 --- a/js/js.translator/testData/expression/misc/cases/exclExcl.kt +++ /dev/null @@ -1,8 +0,0 @@ -package foo - - -fun box(): Boolean { - val a: Int? = 0 - - return (a!! + 3) == 3 -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/exclExclResultIsComputedOnce.kt b/js/js.translator/testData/expression/misc/cases/exclExclResultIsComputedOnce.kt deleted file mode 100644 index 1051f1192df..00000000000 --- a/js/js.translator/testData/expression/misc/cases/exclExclResultIsComputedOnce.kt +++ /dev/null @@ -1,12 +0,0 @@ -package foo - -var c = 0 -val a: Int? - get() { - c++ - return 2 - } - -fun box(): Boolean { - return c == 0 && (a!! + 3) == 5 && c == 1 -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/exclExclThrows.kt b/js/js.translator/testData/expression/misc/cases/exclExclThrows.kt deleted file mode 100644 index 46f332d56c9..00000000000 --- a/js/js.translator/testData/expression/misc/cases/exclExclThrows.kt +++ /dev/null @@ -1,8 +0,0 @@ -package foo - - -fun box(): Boolean { - val a: Int? = null - - return (a!! + 3) == 3 -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/lazyProperty.kt b/js/js.translator/testData/expression/misc/cases/lazyProperty.kt deleted file mode 100644 index 6838ac0fa67..00000000000 --- a/js/js.translator/testData/expression/misc/cases/lazyProperty.kt +++ /dev/null @@ -1,11 +0,0 @@ -fun main(args: Array) { - println("Hello, world!") - println(p) -} - - -val p: Int - get() { - println("Gotcha") - return 3 - } \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/packagePropertyCalledAsFun.kt b/js/js.translator/testData/expression/misc/cases/packagePropertyCalledAsFun.kt deleted file mode 100644 index 073a35c92b1..00000000000 --- a/js/js.translator/testData/expression/misc/cases/packagePropertyCalledAsFun.kt +++ /dev/null @@ -1,7 +0,0 @@ -package foo - -fun lold() = true - -val p = { { lold() }() } - -fun box() = p() && foo.p() \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/safeCallComputesExpressionOnlyOnce.kt b/js/js.translator/testData/expression/misc/cases/safeCallComputesExpressionOnlyOnce.kt deleted file mode 100644 index 77476b72b02..00000000000 --- a/js/js.translator/testData/expression/misc/cases/safeCallComputesExpressionOnlyOnce.kt +++ /dev/null @@ -1,14 +0,0 @@ -package foo - -var i = 0 - -fun test(): Int? = i++ - -fun box(): Boolean { - if (i != 0) return false - test()?.plus(1) - if (i != 1) return false - test()?.minus(2) - if (i != 2) return false - return true -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/temporaryVariableCreatedInPackageInitializer.kt b/js/js.translator/testData/expression/misc/cases/temporaryVariableCreatedInPackageInitializer.kt deleted file mode 100644 index e18f4dc7784..00000000000 --- a/js/js.translator/testData/expression/misc/cases/temporaryVariableCreatedInPackageInitializer.kt +++ /dev/null @@ -1,6 +0,0 @@ -package foo - -var p = 0 -val c = p++ // creates temporary value - -fun box() = (p == 1) && (c == 0) \ No newline at end of file diff --git a/js/js.translator/testData/expression/misc/cases/whenReturnedWithoutBlock.kt b/js/js.translator/testData/expression/misc/cases/whenReturnedWithoutBlock.kt deleted file mode 100644 index 583f1697403..00000000000 --- a/js/js.translator/testData/expression/misc/cases/whenReturnedWithoutBlock.kt +++ /dev/null @@ -1,18 +0,0 @@ -package foo - -fun box(): Boolean { - if (t(1) != 0) { - return false - } - if (t(0) != 1) { - return false - } - return (t(100) == 2) - -} - -fun t(i: Int) = when(i) { - 0 -> 1 - 1 -> 0 - else -> 2 -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/string/cases/kt2227.kt b/js/js.translator/testData/expression/string/cases/kt2227.kt deleted file mode 100644 index b260ffc3f73..00000000000 --- a/js/js.translator/testData/expression/string/cases/kt2227.kt +++ /dev/null @@ -1,6 +0,0 @@ -package foo - -fun box(): Boolean { - if ("${3}" != "3") return false - return "${3}" == "3" -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/doWhileWithOneStmWhen.kt b/js/js.translator/testData/expression/when/cases/doWhileWithOneStmWhen.kt deleted file mode 100644 index aa9b0e9c8c6..00000000000 --- a/js/js.translator/testData/expression/when/cases/doWhileWithOneStmWhen.kt +++ /dev/null @@ -1,15 +0,0 @@ -package foo - - -fun box(): Boolean { - var result = false - var i = 1 - do - when (i) { - 1 -> result = true - else -> result = false - } - while (i==0) - return result; -} - diff --git a/js/js.translator/testData/expression/when/cases/forWithOneStmWhen.kt b/js/js.translator/testData/expression/when/cases/forWithOneStmWhen.kt deleted file mode 100644 index ea3218af26e..00000000000 --- a/js/js.translator/testData/expression/when/cases/forWithOneStmWhen.kt +++ /dev/null @@ -1,13 +0,0 @@ -package foo - - -fun box(): Boolean { - var result = false - for (i in arrayOf(1)) - when (i) { - 1 -> result = true - else -> result = false - } - return result; -} - diff --git a/js/js.translator/testData/expression/when/cases/ifWithOneStmWhen.kt b/js/js.translator/testData/expression/when/cases/ifWithOneStmWhen.kt deleted file mode 100644 index b5786a6edda..00000000000 --- a/js/js.translator/testData/expression/when/cases/ifWithOneStmWhen.kt +++ /dev/null @@ -1,13 +0,0 @@ -package foo - - -fun box(): Boolean { - var result = false - var i = 1 - if (i==1) - when (i) { - 1 -> result = true - else -> result = false - } - return result; -} diff --git a/js/js.translator/testData/expression/when/cases/matchNullableType.kt b/js/js.translator/testData/expression/when/cases/matchNullableType.kt deleted file mode 100644 index c4af8be3948..00000000000 --- a/js/js.translator/testData/expression/when/cases/matchNullableType.kt +++ /dev/null @@ -1,13 +0,0 @@ -package foo - -class A() { - -} - -fun box(): Boolean { - var a: A? = null - when(a) { - is A? -> return true - else -> return false - } -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenAsExpression.kt b/js/js.translator/testData/expression/when/cases/whenAsExpression.kt deleted file mode 100644 index 453fb22c769..00000000000 --- a/js/js.translator/testData/expression/when/cases/whenAsExpression.kt +++ /dev/null @@ -1,12 +0,0 @@ -package foo - - -fun box(): Boolean { - - return (when(1) { - 2 -> 3 - 1 -> 1 - else -> 5 - } == 1) - -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenAsExpressionWithThrow.kt b/js/js.translator/testData/expression/when/cases/whenAsExpressionWithThrow.kt deleted file mode 100644 index 54b15d5944e..00000000000 --- a/js/js.translator/testData/expression/when/cases/whenAsExpressionWithThrow.kt +++ /dev/null @@ -1,19 +0,0 @@ -package foo - -fun box(): Boolean { - - - (when (1) { - 3 -> { - 3 - } - 1 -> { - throw Exception(); - } - else -> { - return false - } - }) - - return false -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenNotType.kt b/js/js.translator/testData/expression/when/cases/whenNotType.kt deleted file mode 100644 index 2dae1b2301b..00000000000 --- a/js/js.translator/testData/expression/when/cases/whenNotType.kt +++ /dev/null @@ -1,12 +0,0 @@ -package foo - -class A() { - -} - -fun box(): Boolean { - when(A()) { - !is A -> return false; - else -> return true; - } -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenType.kt b/js/js.translator/testData/expression/when/cases/whenType.kt deleted file mode 100644 index 80dff939ffb..00000000000 --- a/js/js.translator/testData/expression/when/cases/whenType.kt +++ /dev/null @@ -1,12 +0,0 @@ -package foo - -class A() { - -} - -fun box(): Boolean { - when(A()) { - is A -> return true; - else -> return false; - } -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whenWithOneStmWhen.kt b/js/js.translator/testData/expression/when/cases/whenWithOneStmWhen.kt deleted file mode 100644 index 04e043ece8a..00000000000 --- a/js/js.translator/testData/expression/when/cases/whenWithOneStmWhen.kt +++ /dev/null @@ -1,22 +0,0 @@ -package foo - - -fun box(): Boolean { - var result = false - val i = 1 - when (i) { - 1 -> - when (i) { - 1 -> result = true - else -> result = false - } - - else -> - when (i) { - 1 -> result = true - else -> result = false - } - } - - return result; -} diff --git a/js/js.translator/testData/expression/when/cases/whenWithoutExpression.kt b/js/js.translator/testData/expression/when/cases/whenWithoutExpression.kt deleted file mode 100644 index c6053f5e152..00000000000 --- a/js/js.translator/testData/expression/when/cases/whenWithoutExpression.kt +++ /dev/null @@ -1,6 +0,0 @@ -package foo - -fun box() = when { - 1 > 3 -> false - else -> true -} \ No newline at end of file diff --git a/js/js.translator/testData/expression/when/cases/whileWithOneStmWhen.kt b/js/js.translator/testData/expression/when/cases/whileWithOneStmWhen.kt deleted file mode 100644 index 2b780c5064e..00000000000 --- a/js/js.translator/testData/expression/when/cases/whileWithOneStmWhen.kt +++ /dev/null @@ -1,14 +0,0 @@ -package foo - - -fun box(): Boolean { - var result = false - var i = 1 - loop@ while(i==1) - when (i) { - 1 -> { result = true; break@loop } - else -> result = false - } - return result; -} - diff --git a/js/js.translator/testData/expression/misc/cases/mainFunInNestedPackage.kt b/js/js.translator/testData/mainFunInNestedPackage.kt similarity index 100% rename from js/js.translator/testData/expression/misc/cases/mainFunInNestedPackage.kt rename to js/js.translator/testData/mainFunInNestedPackage.kt