From cdf2212c732c18ac4307399fe49075603e899fc8 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Mon, 29 Aug 2016 12:37:13 +0300 Subject: [PATCH] JS: move more test to box tests --- .../kotlin/generators/tests/GenerateTests.kt | 8 - ...ngleFileTranslationWithDirectivesTest.java | 30 -- .../kotlin/js/test/KotlinJSMultiFileTest.kt | 60 --- .../js/test/semantics/BoxJsTestGenerated.java | 357 ++++++++++++++++++ .../test/semantics/InlineMultiFileTest.java | 150 -------- .../test/semantics/JsCodeTestGenerated.java | 169 --------- .../js/test/semantics/LabelTestGenerated.java | 103 ----- .../semantics/OperatorOverloadingTest.java | 127 ------- .../abstractClassesForGeneratedTests.kt | 4 - .../{jsCode/cases => box/jsCode}/break.kt | 0 .../cases => box/jsCode}/catchScope.kt | 0 .../cases => box/jsCode}/codeFromVariable.kt | 0 .../{jsCode/cases => box/jsCode}/continue.kt | 0 .../{jsCode/cases => box/jsCode}/doWhile.kt | 0 .../{jsCode/cases => box/jsCode}/for.kt | 0 .../{jsCode/cases => box/jsCode}/forIn.kt | 0 .../{jsCode/cases => box/jsCode}/function.kt | 0 .../{jsCode/cases => box/jsCode}/if.kt | 0 .../cases => box/jsCode}/invocation.kt | 0 .../{jsCode/cases => box/jsCode}/label.kt | 0 .../cases => box/jsCode}/labelNestedClash.kt | 0 .../jsCode}/labelNestedClashWithKotlin.kt | 0 .../cases => box/jsCode}/labelSiblingClash.kt | 0 .../{jsCode/cases => box/jsCode}/literal.kt | 0 .../{jsCode/cases => box/jsCode}/object.kt | 0 .../cases => box/jsCode}/objectScopes.kt | 0 .../{jsCode/cases => box/jsCode}/operators.kt | 0 .../{jsCode/cases => box/jsCode}/quotes.kt | 0 .../{jsCode/cases => box/jsCode}/switch.kt | 0 .../cases => box/jsCode}/tryCatchFinally.kt | 0 .../{jsCode/cases => box/jsCode}/while.kt | 0 .../cases => box/labels}/labelOnExpression.kt | 0 .../labels}/labelWithVariableClashing.kt | 0 .../labels}/nestedInlineLabels.kt | 0 .../cases => box/labels}/nestedLabels.kt | 0 .../labels}/nestedLabelsInlinedClashing.kt | 0 ...lsInlinedClashingAtFunctionsWithClosure.kt | 0 .../cases => box/labels}/siblingLabels.kt | 0 .../labels}/siblingLabelsInlined.kt | 0 .../labels}/siblingLabelsInlinedClashing.kt | 0 .../cases => box/labels}/simpleLabel.kt | 0 .../labels}/simpleLabelInlined.kt | 0 .../operatorOverloading/binaryDivOverload.kt | 9 + .../box/operatorOverloading/compareTo.kt | 18 + .../operatorOverloading/compareToByName.kt | 16 + .../operatorOverloading}/lambdaRhs.kt | 0 .../box/operatorOverloading/notOverload.kt | 9 + ...adOnPropertyCallGetterAndSetterOnlyOnce.kt | 8 +- .../overloadPlusAssignArrayList.kt | 0 .../overloadPlusAssignViaExtensionFunction.kt | 8 +- ...rloadPlusAssignViaPlusExtensionFunction.kt | 4 +- .../overloadPlusViaExtensionFunction.kt | 8 +- ...oadUnaryOperationsViaExtensionFunctions.kt | 19 + .../overloadedCallOnProperty.kt | 4 +- .../plusAndMinusAsAnExpression.kt | 13 + .../plusAssignNoReassign.kt | 4 +- .../operatorOverloading}/plusOverload.kt | 4 +- .../operatorOverloading}/postfixInc.kt | 4 +- .../operatorOverloading}/postfixOnProperty.kt | 8 +- .../operatorOverloading}/prefixDecOverload.kt | 4 +- .../prefixIncReturnsCorrectValue.kt | 4 +- .../unaryOnIntProperty.kt | 4 +- .../unaryOnIntPropertyAsStatement.kt | 4 +- .../usingModInCaseModAssignNotAvailable.kt | 4 +- .../cases/binaryDivOverload.kt | 9 - .../operatorOverloading/cases/compareTo.kt | 11 - .../cases/compareToByName.kt | 14 - .../operatorOverloading/cases/notOverload.kt | 9 - ...oadUnaryOperationsViaExtensionFunctions.kt | 13 - .../cases/plusAndMinusAsAnExpression.kt | 13 - 70 files changed, 484 insertions(+), 749 deletions(-) delete mode 100644 js/js.tests/test/org/jetbrains/kotlin/js/test/AbstractSingleFileTranslationWithDirectivesTest.java delete mode 100644 js/js.tests/test/org/jetbrains/kotlin/js/test/KotlinJSMultiFileTest.kt delete mode 100644 js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineMultiFileTest.java delete mode 100644 js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodeTestGenerated.java delete mode 100644 js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/LabelTestGenerated.java delete mode 100644 js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/OperatorOverloadingTest.java rename js/js.translator/testData/{jsCode/cases => box/jsCode}/break.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/catchScope.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/codeFromVariable.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/continue.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/doWhile.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/for.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/forIn.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/function.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/if.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/invocation.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/label.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/labelNestedClash.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/labelNestedClashWithKotlin.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/labelSiblingClash.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/literal.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/object.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/objectScopes.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/operators.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/quotes.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/switch.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/tryCatchFinally.kt (100%) rename js/js.translator/testData/{jsCode/cases => box/jsCode}/while.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/labelOnExpression.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/labelWithVariableClashing.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/nestedInlineLabels.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/nestedLabels.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/nestedLabelsInlinedClashing.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/nestedLabelsInlinedClashingAtFunctionsWithClosure.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/siblingLabels.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/siblingLabelsInlined.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/siblingLabelsInlinedClashing.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/simpleLabel.kt (100%) rename js/js.translator/testData/{labels/cases => box/labels}/simpleLabelInlined.kt (100%) create mode 100644 js/js.translator/testData/box/operatorOverloading/binaryDivOverload.kt create mode 100644 js/js.translator/testData/box/operatorOverloading/compareTo.kt create mode 100644 js/js.translator/testData/box/operatorOverloading/compareToByName.kt rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/lambdaRhs.kt (100%) create mode 100644 js/js.translator/testData/box/operatorOverloading/notOverload.kt rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/operatorOverloadOnPropertyCallGetterAndSetterOnlyOnce.kt (74%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/overloadPlusAssignArrayList.kt (100%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/overloadPlusAssignViaExtensionFunction.kt (62%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/overloadPlusAssignViaPlusExtensionFunction.kt (77%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/overloadPlusViaExtensionFunction.kt (63%) create mode 100644 js/js.translator/testData/box/operatorOverloading/overloadUnaryOperationsViaExtensionFunctions.kt rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/overloadedCallOnProperty.kt (76%) create mode 100644 js/js.translator/testData/box/operatorOverloading/plusAndMinusAsAnExpression.kt rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/plusAssignNoReassign.kt (68%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/plusOverload.kt (60%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/postfixInc.kt (74%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/postfixOnProperty.kt (57%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/prefixDecOverload.kt (71%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/prefixIncReturnsCorrectValue.kt (70%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/unaryOnIntProperty.kt (69%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/unaryOnIntPropertyAsStatement.kt (68%) rename js/js.translator/testData/{operatorOverloading/cases => box/operatorOverloading}/usingModInCaseModAssignNotAvailable.kt (65%) delete mode 100644 js/js.translator/testData/operatorOverloading/cases/binaryDivOverload.kt delete mode 100644 js/js.translator/testData/operatorOverloading/cases/compareTo.kt delete mode 100644 js/js.translator/testData/operatorOverloading/cases/compareToByName.kt delete mode 100644 js/js.translator/testData/operatorOverloading/cases/notOverload.kt delete mode 100644 js/js.translator/testData/operatorOverloading/cases/overloadUnaryOperationsViaExtensionFunctions.kt delete mode 100644 js/js.translator/testData/operatorOverloading/cases/plusAndMinusAsAnExpression.kt diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 5111264ce98..ad4325021ab 100755 --- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -1149,14 +1149,6 @@ fun main(args: Array) { model("multiModule/cases") } - testClass() { - model("labels/cases") - } - - testClass() { - model("jsCode/cases") - } - testClass() { model("reified/cases") } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/AbstractSingleFileTranslationWithDirectivesTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/AbstractSingleFileTranslationWithDirectivesTest.java deleted file mode 100644 index 55552f2a06f..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/AbstractSingleFileTranslationWithDirectivesTest.java +++ /dev/null @@ -1,30 +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; - -import org.jetbrains.annotations.NotNull; - -public abstract class AbstractSingleFileTranslationWithDirectivesTest extends SingleFileTranslationTest { - public AbstractSingleFileTranslationWithDirectivesTest(@NotNull String main) { - super(main); - } - - @Override - public void setUp() throws Exception { - super.setUp(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/KotlinJSMultiFileTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/KotlinJSMultiFileTest.kt deleted file mode 100644 index bc3de9cdd5d..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/KotlinJSMultiFileTest.kt +++ /dev/null @@ -1,60 +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 - -import com.intellij.openapi.util.io.FileUtil -import org.jetbrains.kotlin.psi.KtNamedFunction -import org.jetbrains.kotlin.psi.KtPsiFactory -import org.jetbrains.kotlin.test.KotlinTestUtils -import org.jetbrains.kotlin.test.KotlinTestUtils.TestFileFactory -import java.io.File - -abstract class KotlinJSMultiFileTest(path: String) : SingleFileTranslationTest(path) { - var tempDir: File? = null - - override fun doTest(filename: String) { - tempDir = FileUtil.createTempDirectory("test", "src") - tempDir!!.deleteOnExit() - try { - val file = File(filename) - val expectedText = KotlinTestUtils.doLoadFile(file) - var testPackage: String? = null - - val inputFiles = KotlinTestUtils.createTestFiles(file.name, expectedText, object : TestFileFactory { - override fun createFile(module: String?, fileName: String, text: String, directives: Map): String? { - val output = File(tempDir!!, fileName) - KotlinTestUtils.mkdirs(file.parentFile) - output.writeText(text, Charsets.UTF_8) - - val ktFile = KtPsiFactory(project).createFile(text) - val boxFunction = ktFile.declarations.find { it is KtNamedFunction && it.name == TEST_FUNCTION } - if (boxFunction != null) { - testPackage = getPackageName(ktFile) - } - - return output.path - } - - override fun createModule(name: String, dependencies: List): String? = error("Multi-module tests not supported") - }) - runFunctionOutputTestByPaths(BasicTest.DEFAULT_ECMA_VERSIONS, inputFiles, testPackage!!, BasicTest.TEST_FUNCTION, "OK") - } - finally { - tempDir!!.deleteRecursively() - } - } -} \ No newline at end of file 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 a88b0fbdddf..ceb3bcb51c5 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 @@ -4315,4 +4315,361 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { doTest(fileName); } } + + @TestMetadata("js/js.translator/testData/box/jsCode") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JsCode extends AbstractBoxJsTest { + public void testAllFilesPresentInJsCode() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/jsCode"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("break.kt") + public void testBreak() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/break.kt"); + doTest(fileName); + } + + @TestMetadata("catchScope.kt") + public void testCatchScope() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/catchScope.kt"); + doTest(fileName); + } + + @TestMetadata("codeFromVariable.kt") + public void testCodeFromVariable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/codeFromVariable.kt"); + doTest(fileName); + } + + @TestMetadata("continue.kt") + public void testContinue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/continue.kt"); + doTest(fileName); + } + + @TestMetadata("doWhile.kt") + public void testDoWhile() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/doWhile.kt"); + doTest(fileName); + } + + @TestMetadata("for.kt") + public void testFor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/for.kt"); + doTest(fileName); + } + + @TestMetadata("forIn.kt") + public void testForIn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/forIn.kt"); + doTest(fileName); + } + + @TestMetadata("function.kt") + public void testFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/function.kt"); + doTest(fileName); + } + + @TestMetadata("if.kt") + public void testIf() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/if.kt"); + doTest(fileName); + } + + @TestMetadata("invocation.kt") + public void testInvocation() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/invocation.kt"); + doTest(fileName); + } + + @TestMetadata("label.kt") + public void testLabel() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/label.kt"); + doTest(fileName); + } + + @TestMetadata("labelNestedClash.kt") + public void testLabelNestedClash() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/labelNestedClash.kt"); + doTest(fileName); + } + + @TestMetadata("labelNestedClashWithKotlin.kt") + public void testLabelNestedClashWithKotlin() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/labelNestedClashWithKotlin.kt"); + doTest(fileName); + } + + @TestMetadata("labelSiblingClash.kt") + public void testLabelSiblingClash() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/labelSiblingClash.kt"); + doTest(fileName); + } + + @TestMetadata("literal.kt") + public void testLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/literal.kt"); + doTest(fileName); + } + + @TestMetadata("object.kt") + public void testObject() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/object.kt"); + doTest(fileName); + } + + @TestMetadata("objectScopes.kt") + public void testObjectScopes() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/objectScopes.kt"); + doTest(fileName); + } + + @TestMetadata("operators.kt") + public void testOperators() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/operators.kt"); + doTest(fileName); + } + + @TestMetadata("quotes.kt") + public void testQuotes() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/quotes.kt"); + doTest(fileName); + } + + @TestMetadata("switch.kt") + public void testSwitch() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/switch.kt"); + doTest(fileName); + } + + @TestMetadata("tryCatchFinally.kt") + public void testTryCatchFinally() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/tryCatchFinally.kt"); + doTest(fileName); + } + + @TestMetadata("while.kt") + public void testWhile() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsCode/while.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/labels") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Labels extends AbstractBoxJsTest { + public void testAllFilesPresentInLabels() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/labels"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("labelOnExpression.kt") + public void testLabelOnExpression() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/labelOnExpression.kt"); + doTest(fileName); + } + + @TestMetadata("labelWithVariableClashing.kt") + public void testLabelWithVariableClashing() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/labelWithVariableClashing.kt"); + doTest(fileName); + } + + @TestMetadata("nestedInlineLabels.kt") + public void testNestedInlineLabels() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/nestedInlineLabels.kt"); + doTest(fileName); + } + + @TestMetadata("nestedLabels.kt") + public void testNestedLabels() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/nestedLabels.kt"); + doTest(fileName); + } + + @TestMetadata("nestedLabelsInlinedClashing.kt") + public void testNestedLabelsInlinedClashing() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/nestedLabelsInlinedClashing.kt"); + doTest(fileName); + } + + @TestMetadata("nestedLabelsInlinedClashingAtFunctionsWithClosure.kt") + public void testNestedLabelsInlinedClashingAtFunctionsWithClosure() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/nestedLabelsInlinedClashingAtFunctionsWithClosure.kt"); + doTest(fileName); + } + + @TestMetadata("siblingLabels.kt") + public void testSiblingLabels() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/siblingLabels.kt"); + doTest(fileName); + } + + @TestMetadata("siblingLabelsInlined.kt") + public void testSiblingLabelsInlined() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/siblingLabelsInlined.kt"); + doTest(fileName); + } + + @TestMetadata("siblingLabelsInlinedClashing.kt") + public void testSiblingLabelsInlinedClashing() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/siblingLabelsInlinedClashing.kt"); + doTest(fileName); + } + + @TestMetadata("simpleLabel.kt") + public void testSimpleLabel() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/simpleLabel.kt"); + doTest(fileName); + } + + @TestMetadata("simpleLabelInlined.kt") + public void testSimpleLabelInlined() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/labels/simpleLabelInlined.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/operatorOverloading") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class OperatorOverloading extends AbstractBoxJsTest { + public void testAllFilesPresentInOperatorOverloading() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/operatorOverloading"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("binaryDivOverload.kt") + public void testBinaryDivOverload() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/binaryDivOverload.kt"); + doTest(fileName); + } + + @TestMetadata("compareTo.kt") + public void testCompareTo() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/compareTo.kt"); + doTest(fileName); + } + + @TestMetadata("compareToByName.kt") + public void testCompareToByName() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/compareToByName.kt"); + doTest(fileName); + } + + @TestMetadata("lambdaRhs.kt") + public void testLambdaRhs() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/lambdaRhs.kt"); + doTest(fileName); + } + + @TestMetadata("notOverload.kt") + public void testNotOverload() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/notOverload.kt"); + doTest(fileName); + } + + @TestMetadata("operatorOverloadOnPropertyCallGetterAndSetterOnlyOnce.kt") + public void testOperatorOverloadOnPropertyCallGetterAndSetterOnlyOnce() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/operatorOverloadOnPropertyCallGetterAndSetterOnlyOnce.kt"); + doTest(fileName); + } + + @TestMetadata("overloadPlusAssignArrayList.kt") + public void testOverloadPlusAssignArrayList() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/overloadPlusAssignArrayList.kt"); + doTest(fileName); + } + + @TestMetadata("overloadPlusAssignViaExtensionFunction.kt") + public void testOverloadPlusAssignViaExtensionFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/overloadPlusAssignViaExtensionFunction.kt"); + doTest(fileName); + } + + @TestMetadata("overloadPlusAssignViaPlusExtensionFunction.kt") + public void testOverloadPlusAssignViaPlusExtensionFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/overloadPlusAssignViaPlusExtensionFunction.kt"); + doTest(fileName); + } + + @TestMetadata("overloadPlusViaExtensionFunction.kt") + public void testOverloadPlusViaExtensionFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/overloadPlusViaExtensionFunction.kt"); + doTest(fileName); + } + + @TestMetadata("overloadUnaryOperationsViaExtensionFunctions.kt") + public void testOverloadUnaryOperationsViaExtensionFunctions() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/overloadUnaryOperationsViaExtensionFunctions.kt"); + doTest(fileName); + } + + @TestMetadata("overloadedCallOnProperty.kt") + public void testOverloadedCallOnProperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/overloadedCallOnProperty.kt"); + doTest(fileName); + } + + @TestMetadata("plusAndMinusAsAnExpression.kt") + public void testPlusAndMinusAsAnExpression() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/plusAndMinusAsAnExpression.kt"); + doTest(fileName); + } + + @TestMetadata("plusAssignNoReassign.kt") + public void testPlusAssignNoReassign() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/plusAssignNoReassign.kt"); + doTest(fileName); + } + + @TestMetadata("plusOverload.kt") + public void testPlusOverload() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/plusOverload.kt"); + doTest(fileName); + } + + @TestMetadata("postfixInc.kt") + public void testPostfixInc() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/postfixInc.kt"); + doTest(fileName); + } + + @TestMetadata("postfixOnProperty.kt") + public void testPostfixOnProperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/postfixOnProperty.kt"); + doTest(fileName); + } + + @TestMetadata("prefixDecOverload.kt") + public void testPrefixDecOverload() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/prefixDecOverload.kt"); + doTest(fileName); + } + + @TestMetadata("prefixIncReturnsCorrectValue.kt") + public void testPrefixIncReturnsCorrectValue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/prefixIncReturnsCorrectValue.kt"); + doTest(fileName); + } + + @TestMetadata("unaryOnIntProperty.kt") + public void testUnaryOnIntProperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/unaryOnIntProperty.kt"); + doTest(fileName); + } + + @TestMetadata("unaryOnIntPropertyAsStatement.kt") + public void testUnaryOnIntPropertyAsStatement() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/unaryOnIntPropertyAsStatement.kt"); + doTest(fileName); + } + + @TestMetadata("usingModInCaseModAssignNotAvailable.kt") + public void testUsingModInCaseModAssignNotAvailable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/operatorOverloading/usingModInCaseModAssignNotAvailable.kt"); + doTest(fileName); + } + } } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineMultiFileTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineMultiFileTest.java deleted file mode 100644 index f471e7ea872..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineMultiFileTest.java +++ /dev/null @@ -1,150 +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 com.google.dart.compiler.backend.js.ast.JsProgram; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.js.test.MultipleFilesTranslationTest; -import org.jetbrains.kotlin.js.test.utils.DirectiveTestUtils; -import org.jetbrains.kotlin.js.test.utils.JsTestUtils; - -import java.util.List; - -import static org.jetbrains.kotlin.js.test.utils.JsTestUtils.getAllFilesInDir; - -public final class InlineMultiFileTest extends MultipleFilesTranslationTest { - public InlineMultiFileTest() { - super("inlineMultiFile/"); - } - - @Override - public void setUp() throws Exception { - super.setUp(); - } - - public void testInlineMultiFileSimple() throws Exception { - checkFooBoxIsOk(); - } - - public void testBuilders() throws Exception { - checkFooBoxIsOk(); - } - - public void testBuildersAndLambdaCapturing() throws Exception { - checkFooBoxIsOk(); - } - - public void testAnonymousObjectOnCallSite() throws Exception { - checkFooBoxIsOk(); - } - - public void testAnonymousObjectOnCallSiteSuperParams() throws Exception { - checkFooBoxIsOk(); - } - - public void testAnonymousObjectOnDeclarationSite() throws Exception { - checkFooBoxIsOk(); - } - - public void testAnonymousObjectOnDeclarationSiteSuperParams() throws Exception { - checkFooBoxIsOk(); - } - - public void testTrait() throws Exception { - checkFooBoxIsOk(); - } - - public void testUse() throws Exception { - checkFooBoxIsOk(); - } - - public void testWith() throws Exception { - checkFooBoxIsOk(); - } - - public void testTryCatch() throws Exception { - checkFooBoxIsOk(); - } - - public void testTryCatch2() throws Exception { - checkFooBoxIsOk(); - } - - public void testTryCatchFinally() throws Exception { - checkFooBoxIsOk(); - } - - public void testLambdaCloning() throws Exception { - checkFooBoxIsOk(); - } - - public void testLambdaInLambda2() throws Exception { - checkFooBoxIsOk(); - } - - public void testLambdaInLambdaNoInline() throws Exception { - checkFooBoxIsOk(); - } - - public void testRegeneratedLambdaName() throws Exception { - checkFooBoxIsOk(); - } - - public void testSameCaptured() throws Exception { - checkFooBoxIsOk(); - } - - public void testClosureChain() throws Exception { - checkFooBoxIsOk(); - } - - public void testInlineInDefaultParameter() throws Exception { - checkFooBoxIsOk(); - } - - public void testDefaultMethod() throws Exception { - checkFooBoxIsOk(); - } - - public void testSimpleDefaultMethod() throws Exception { - checkFooBoxIsOk(); - } - - public void testCaptureInlinable() throws Exception { - checkFooBoxIsOk(); - } - - public void testCaptureInlinableAndOther() throws Exception { - checkFooBoxIsOk(); - } - - public void testCaptureThisAndReceiver() throws Exception { - checkFooBoxIsOk(); - } - - public void testGenerics() throws Exception { - checkFooBoxIsOk(); - } - - public void testSimpleCapturingInClass() throws Exception { - checkFooBoxIsOk(); - } - - public void testSimpleCapturingInPackage() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodeTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodeTestGenerated.java deleted file mode 100644 index 7ab2fe33f66..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodeTestGenerated.java +++ /dev/null @@ -1,169 +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/jsCode/cases") -@TestDataPath("$PROJECT_ROOT") -@RunWith(JUnit3RunnerWithInners.class) -public class JsCodeTestGenerated extends AbstractJsCodeTest { - public void testAllFilesPresentInCases() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/jsCode/cases"), Pattern.compile("^(.+)\\.kt$"), true); - } - - @TestMetadata("break.kt") - public void testBreak() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/break.kt"); - doTest(fileName); - } - - @TestMetadata("catchScope.kt") - public void testCatchScope() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/catchScope.kt"); - doTest(fileName); - } - - @TestMetadata("codeFromVariable.kt") - public void testCodeFromVariable() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/codeFromVariable.kt"); - doTest(fileName); - } - - @TestMetadata("continue.kt") - public void testContinue() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/continue.kt"); - doTest(fileName); - } - - @TestMetadata("doWhile.kt") - public void testDoWhile() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/doWhile.kt"); - doTest(fileName); - } - - @TestMetadata("for.kt") - public void testFor() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/for.kt"); - doTest(fileName); - } - - @TestMetadata("forIn.kt") - public void testForIn() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/forIn.kt"); - doTest(fileName); - } - - @TestMetadata("function.kt") - public void testFunction() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/function.kt"); - doTest(fileName); - } - - @TestMetadata("if.kt") - public void testIf() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/if.kt"); - doTest(fileName); - } - - @TestMetadata("invocation.kt") - public void testInvocation() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/invocation.kt"); - doTest(fileName); - } - - @TestMetadata("label.kt") - public void testLabel() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/label.kt"); - doTest(fileName); - } - - @TestMetadata("labelNestedClash.kt") - public void testLabelNestedClash() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/labelNestedClash.kt"); - doTest(fileName); - } - - @TestMetadata("labelNestedClashWithKotlin.kt") - public void testLabelNestedClashWithKotlin() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/labelNestedClashWithKotlin.kt"); - doTest(fileName); - } - - @TestMetadata("labelSiblingClash.kt") - public void testLabelSiblingClash() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/labelSiblingClash.kt"); - doTest(fileName); - } - - @TestMetadata("literal.kt") - public void testLiteral() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/literal.kt"); - doTest(fileName); - } - - @TestMetadata("object.kt") - public void testObject() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/object.kt"); - doTest(fileName); - } - - @TestMetadata("objectScopes.kt") - public void testObjectScopes() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/objectScopes.kt"); - doTest(fileName); - } - - @TestMetadata("operators.kt") - public void testOperators() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/operators.kt"); - doTest(fileName); - } - - @TestMetadata("quotes.kt") - public void testQuotes() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/quotes.kt"); - doTest(fileName); - } - - @TestMetadata("switch.kt") - public void testSwitch() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/switch.kt"); - doTest(fileName); - } - - @TestMetadata("tryCatchFinally.kt") - public void testTryCatchFinally() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/tryCatchFinally.kt"); - doTest(fileName); - } - - @TestMetadata("while.kt") - public void testWhile() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/jsCode/cases/while.kt"); - doTest(fileName); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/LabelTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/LabelTestGenerated.java deleted file mode 100644 index 40a636e8ea7..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/LabelTestGenerated.java +++ /dev/null @@ -1,103 +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/labels/cases") -@TestDataPath("$PROJECT_ROOT") -@RunWith(JUnit3RunnerWithInners.class) -public class LabelTestGenerated extends AbstractLabelTest { - public void testAllFilesPresentInCases() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/labels/cases"), Pattern.compile("^(.+)\\.kt$"), true); - } - - @TestMetadata("labelOnExpression.kt") - public void testLabelOnExpression() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/labelOnExpression.kt"); - doTest(fileName); - } - - @TestMetadata("labelWithVariableClashing.kt") - public void testLabelWithVariableClashing() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/labelWithVariableClashing.kt"); - doTest(fileName); - } - - @TestMetadata("nestedInlineLabels.kt") - public void testNestedInlineLabels() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/nestedInlineLabels.kt"); - doTest(fileName); - } - - @TestMetadata("nestedLabels.kt") - public void testNestedLabels() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/nestedLabels.kt"); - doTest(fileName); - } - - @TestMetadata("nestedLabelsInlinedClashing.kt") - public void testNestedLabelsInlinedClashing() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/nestedLabelsInlinedClashing.kt"); - doTest(fileName); - } - - @TestMetadata("nestedLabelsInlinedClashingAtFunctionsWithClosure.kt") - public void testNestedLabelsInlinedClashingAtFunctionsWithClosure() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/nestedLabelsInlinedClashingAtFunctionsWithClosure.kt"); - doTest(fileName); - } - - @TestMetadata("siblingLabels.kt") - public void testSiblingLabels() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/siblingLabels.kt"); - doTest(fileName); - } - - @TestMetadata("siblingLabelsInlined.kt") - public void testSiblingLabelsInlined() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/siblingLabelsInlined.kt"); - doTest(fileName); - } - - @TestMetadata("siblingLabelsInlinedClashing.kt") - public void testSiblingLabelsInlinedClashing() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/siblingLabelsInlinedClashing.kt"); - doTest(fileName); - } - - @TestMetadata("simpleLabel.kt") - public void testSimpleLabel() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/simpleLabel.kt"); - doTest(fileName); - } - - @TestMetadata("simpleLabelInlined.kt") - public void testSimpleLabelInlined() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/labels/cases/simpleLabelInlined.kt"); - doTest(fileName); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/OperatorOverloadingTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/OperatorOverloadingTest.java deleted file mode 100644 index 291b090ed3a..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/OperatorOverloadingTest.java +++ /dev/null @@ -1,127 +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 org.jetbrains.kotlin.js.test.SingleFileTranslationTest; - -public final class OperatorOverloadingTest extends SingleFileTranslationTest { - - public OperatorOverloadingTest() { - super("operatorOverloading/"); - } - - public void testPlusOverload() throws Exception { - fooBoxTest(); - } - - - public void testPostfixInc() throws Exception { - fooBoxTest(); - } - - - public void testPrefixDecOverload() throws Exception { - fooBoxTest(); - } - - - public void testPrefixIncReturnsCorrectValue() throws Exception { - fooBoxTest(); - } - - - public void testOverloadedCallOnProperty() throws Exception { - fooBoxTest(); - } - - - public void testPostfixOnProperty() throws Exception { - fooBoxTest(); - } - - - public void testOperatorOverloadOnPropertyCallGetterAndSetterOnlyOnce() throws Exception { - fooBoxTest(); - } - - - public void testUnaryOnIntProperty() throws Exception { - fooBoxTest(); - } - - - public void testUnaryOnIntPropertyAsStatement() throws Exception { - fooBoxTest(); - } - - - public void testBinaryDivOverload() throws Exception { - fooBoxTest(); - } - - - public void testPlusAssignNoReassign() throws Exception { - fooBoxTest(); - } - - public void testNotOverload() throws Exception { - fooBoxTest(); - } - - - public void testCompareTo() throws Exception { - fooBoxTest(); - } - - public void testCompareToByName() throws Exception { - fooBoxTest(); - } - - - public void testPlusAndMinusAsAnExpression() throws Exception { - fooBoxTest(); - } - - - public void testUsingModInCaseModAssignNotAvailable() throws Exception { - fooBoxTest(); - } - - public void testOverloadPlusAssignArrayList() throws Exception { - checkFooBoxIsOk("overloadPlusAssignArrayList.kt"); - } - - public void testOverloadPlusAssignViaExtensionFunction() throws Exception { - fooBoxTest(); - } - - public void testOverloadPlusViaExtensionFunction() throws Exception { - fooBoxTest(); - } - - public void testOverloadPlusAssignViaPlusExtensionFunction() throws Exception { - fooBoxTest(); - } - - public void testOverloadUnaryOperationsViaExtensionFunctions() throws Exception { - fooBoxTest(); - } - - public void testLambdaRhs() 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 8da1cd62767..a6a3fbcefcf 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 @@ -47,10 +47,6 @@ abstract class AbstractCompanionObjectTest : JsBasicBoxTest("objectIntrinsics/") abstract class AbstractFunctionExpressionTest : JsBasicBoxTest("functionExpression/") -abstract class AbstractJsCodeTest : JsBasicBoxTest("jsCode/") - -abstract class AbstractLabelTest : JsBasicBoxTest("labels/") - abstract class AbstractMultiModuleTest : JsBasicBoxTest("multiModule/") abstract class AbstractReservedWordTest : JsBasicBoxTest("reservedWords/") diff --git a/js/js.translator/testData/jsCode/cases/break.kt b/js/js.translator/testData/box/jsCode/break.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/break.kt rename to js/js.translator/testData/box/jsCode/break.kt diff --git a/js/js.translator/testData/jsCode/cases/catchScope.kt b/js/js.translator/testData/box/jsCode/catchScope.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/catchScope.kt rename to js/js.translator/testData/box/jsCode/catchScope.kt diff --git a/js/js.translator/testData/jsCode/cases/codeFromVariable.kt b/js/js.translator/testData/box/jsCode/codeFromVariable.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/codeFromVariable.kt rename to js/js.translator/testData/box/jsCode/codeFromVariable.kt diff --git a/js/js.translator/testData/jsCode/cases/continue.kt b/js/js.translator/testData/box/jsCode/continue.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/continue.kt rename to js/js.translator/testData/box/jsCode/continue.kt diff --git a/js/js.translator/testData/jsCode/cases/doWhile.kt b/js/js.translator/testData/box/jsCode/doWhile.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/doWhile.kt rename to js/js.translator/testData/box/jsCode/doWhile.kt diff --git a/js/js.translator/testData/jsCode/cases/for.kt b/js/js.translator/testData/box/jsCode/for.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/for.kt rename to js/js.translator/testData/box/jsCode/for.kt diff --git a/js/js.translator/testData/jsCode/cases/forIn.kt b/js/js.translator/testData/box/jsCode/forIn.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/forIn.kt rename to js/js.translator/testData/box/jsCode/forIn.kt diff --git a/js/js.translator/testData/jsCode/cases/function.kt b/js/js.translator/testData/box/jsCode/function.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/function.kt rename to js/js.translator/testData/box/jsCode/function.kt diff --git a/js/js.translator/testData/jsCode/cases/if.kt b/js/js.translator/testData/box/jsCode/if.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/if.kt rename to js/js.translator/testData/box/jsCode/if.kt diff --git a/js/js.translator/testData/jsCode/cases/invocation.kt b/js/js.translator/testData/box/jsCode/invocation.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/invocation.kt rename to js/js.translator/testData/box/jsCode/invocation.kt diff --git a/js/js.translator/testData/jsCode/cases/label.kt b/js/js.translator/testData/box/jsCode/label.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/label.kt rename to js/js.translator/testData/box/jsCode/label.kt diff --git a/js/js.translator/testData/jsCode/cases/labelNestedClash.kt b/js/js.translator/testData/box/jsCode/labelNestedClash.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/labelNestedClash.kt rename to js/js.translator/testData/box/jsCode/labelNestedClash.kt diff --git a/js/js.translator/testData/jsCode/cases/labelNestedClashWithKotlin.kt b/js/js.translator/testData/box/jsCode/labelNestedClashWithKotlin.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/labelNestedClashWithKotlin.kt rename to js/js.translator/testData/box/jsCode/labelNestedClashWithKotlin.kt diff --git a/js/js.translator/testData/jsCode/cases/labelSiblingClash.kt b/js/js.translator/testData/box/jsCode/labelSiblingClash.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/labelSiblingClash.kt rename to js/js.translator/testData/box/jsCode/labelSiblingClash.kt diff --git a/js/js.translator/testData/jsCode/cases/literal.kt b/js/js.translator/testData/box/jsCode/literal.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/literal.kt rename to js/js.translator/testData/box/jsCode/literal.kt diff --git a/js/js.translator/testData/jsCode/cases/object.kt b/js/js.translator/testData/box/jsCode/object.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/object.kt rename to js/js.translator/testData/box/jsCode/object.kt diff --git a/js/js.translator/testData/jsCode/cases/objectScopes.kt b/js/js.translator/testData/box/jsCode/objectScopes.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/objectScopes.kt rename to js/js.translator/testData/box/jsCode/objectScopes.kt diff --git a/js/js.translator/testData/jsCode/cases/operators.kt b/js/js.translator/testData/box/jsCode/operators.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/operators.kt rename to js/js.translator/testData/box/jsCode/operators.kt diff --git a/js/js.translator/testData/jsCode/cases/quotes.kt b/js/js.translator/testData/box/jsCode/quotes.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/quotes.kt rename to js/js.translator/testData/box/jsCode/quotes.kt diff --git a/js/js.translator/testData/jsCode/cases/switch.kt b/js/js.translator/testData/box/jsCode/switch.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/switch.kt rename to js/js.translator/testData/box/jsCode/switch.kt diff --git a/js/js.translator/testData/jsCode/cases/tryCatchFinally.kt b/js/js.translator/testData/box/jsCode/tryCatchFinally.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/tryCatchFinally.kt rename to js/js.translator/testData/box/jsCode/tryCatchFinally.kt diff --git a/js/js.translator/testData/jsCode/cases/while.kt b/js/js.translator/testData/box/jsCode/while.kt similarity index 100% rename from js/js.translator/testData/jsCode/cases/while.kt rename to js/js.translator/testData/box/jsCode/while.kt diff --git a/js/js.translator/testData/labels/cases/labelOnExpression.kt b/js/js.translator/testData/box/labels/labelOnExpression.kt similarity index 100% rename from js/js.translator/testData/labels/cases/labelOnExpression.kt rename to js/js.translator/testData/box/labels/labelOnExpression.kt diff --git a/js/js.translator/testData/labels/cases/labelWithVariableClashing.kt b/js/js.translator/testData/box/labels/labelWithVariableClashing.kt similarity index 100% rename from js/js.translator/testData/labels/cases/labelWithVariableClashing.kt rename to js/js.translator/testData/box/labels/labelWithVariableClashing.kt diff --git a/js/js.translator/testData/labels/cases/nestedInlineLabels.kt b/js/js.translator/testData/box/labels/nestedInlineLabels.kt similarity index 100% rename from js/js.translator/testData/labels/cases/nestedInlineLabels.kt rename to js/js.translator/testData/box/labels/nestedInlineLabels.kt diff --git a/js/js.translator/testData/labels/cases/nestedLabels.kt b/js/js.translator/testData/box/labels/nestedLabels.kt similarity index 100% rename from js/js.translator/testData/labels/cases/nestedLabels.kt rename to js/js.translator/testData/box/labels/nestedLabels.kt diff --git a/js/js.translator/testData/labels/cases/nestedLabelsInlinedClashing.kt b/js/js.translator/testData/box/labels/nestedLabelsInlinedClashing.kt similarity index 100% rename from js/js.translator/testData/labels/cases/nestedLabelsInlinedClashing.kt rename to js/js.translator/testData/box/labels/nestedLabelsInlinedClashing.kt diff --git a/js/js.translator/testData/labels/cases/nestedLabelsInlinedClashingAtFunctionsWithClosure.kt b/js/js.translator/testData/box/labels/nestedLabelsInlinedClashingAtFunctionsWithClosure.kt similarity index 100% rename from js/js.translator/testData/labels/cases/nestedLabelsInlinedClashingAtFunctionsWithClosure.kt rename to js/js.translator/testData/box/labels/nestedLabelsInlinedClashingAtFunctionsWithClosure.kt diff --git a/js/js.translator/testData/labels/cases/siblingLabels.kt b/js/js.translator/testData/box/labels/siblingLabels.kt similarity index 100% rename from js/js.translator/testData/labels/cases/siblingLabels.kt rename to js/js.translator/testData/box/labels/siblingLabels.kt diff --git a/js/js.translator/testData/labels/cases/siblingLabelsInlined.kt b/js/js.translator/testData/box/labels/siblingLabelsInlined.kt similarity index 100% rename from js/js.translator/testData/labels/cases/siblingLabelsInlined.kt rename to js/js.translator/testData/box/labels/siblingLabelsInlined.kt diff --git a/js/js.translator/testData/labels/cases/siblingLabelsInlinedClashing.kt b/js/js.translator/testData/box/labels/siblingLabelsInlinedClashing.kt similarity index 100% rename from js/js.translator/testData/labels/cases/siblingLabelsInlinedClashing.kt rename to js/js.translator/testData/box/labels/siblingLabelsInlinedClashing.kt diff --git a/js/js.translator/testData/labels/cases/simpleLabel.kt b/js/js.translator/testData/box/labels/simpleLabel.kt similarity index 100% rename from js/js.translator/testData/labels/cases/simpleLabel.kt rename to js/js.translator/testData/box/labels/simpleLabel.kt diff --git a/js/js.translator/testData/labels/cases/simpleLabelInlined.kt b/js/js.translator/testData/box/labels/simpleLabelInlined.kt similarity index 100% rename from js/js.translator/testData/labels/cases/simpleLabelInlined.kt rename to js/js.translator/testData/box/labels/simpleLabelInlined.kt diff --git a/js/js.translator/testData/box/operatorOverloading/binaryDivOverload.kt b/js/js.translator/testData/box/operatorOverloading/binaryDivOverload.kt new file mode 100644 index 00000000000..5d2b26017cd --- /dev/null +++ b/js/js.translator/testData/box/operatorOverloading/binaryDivOverload.kt @@ -0,0 +1,9 @@ +package foo + +class A() { + + operator fun div(other: A) = "OK" + +} + +fun box() = A() / A() \ No newline at end of file diff --git a/js/js.translator/testData/box/operatorOverloading/compareTo.kt b/js/js.translator/testData/box/operatorOverloading/compareTo.kt new file mode 100644 index 00000000000..03706793cc0 --- /dev/null +++ b/js/js.translator/testData/box/operatorOverloading/compareTo.kt @@ -0,0 +1,18 @@ +package foo + + +class A(t: Int) { + var i = t + operator fun compareTo(other: A) = (this.i - other.i) +} + +fun box(): String { + if (A(3) <= A(2)) return "fail1" + if (A(2) < A(2)) return "fail2" + if (A(1) < A(0)) return "fail3" + if (A(2) > A(2)) return "fail4" + if (A(3) > A(4)) return "fail5" + if (A(0) >= A(100)) return "fail6" + + return "OK" +} diff --git a/js/js.translator/testData/box/operatorOverloading/compareToByName.kt b/js/js.translator/testData/box/operatorOverloading/compareToByName.kt new file mode 100644 index 00000000000..71c0dca8a00 --- /dev/null +++ b/js/js.translator/testData/box/operatorOverloading/compareToByName.kt @@ -0,0 +1,16 @@ +package foo + + +class A(t: Int) { + var i = t + infix operator fun compareTo(other: A) = (this.i - other.i) +} + +fun box(): String { + if (A(3) compareTo A(2) <= 0) return "fail1" + if (A(2) compareTo A(2) != 0) return "fail2" + if (A(1) compareTo A(0) <= 0) return "fail3" + if (A(3) compareTo A(4) >= 0) return "fail4" + if (A(0) compareTo A(100) >= 0) return "fail5" + return "OK" +} diff --git a/js/js.translator/testData/operatorOverloading/cases/lambdaRhs.kt b/js/js.translator/testData/box/operatorOverloading/lambdaRhs.kt similarity index 100% rename from js/js.translator/testData/operatorOverloading/cases/lambdaRhs.kt rename to js/js.translator/testData/box/operatorOverloading/lambdaRhs.kt diff --git a/js/js.translator/testData/box/operatorOverloading/notOverload.kt b/js/js.translator/testData/box/operatorOverloading/notOverload.kt new file mode 100644 index 00000000000..9eea672fe4a --- /dev/null +++ b/js/js.translator/testData/box/operatorOverloading/notOverload.kt @@ -0,0 +1,9 @@ +package foo + +class A() { + + operator fun not() = "OK" + +} + +fun box() = !A() \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/operatorOverloadOnPropertyCallGetterAndSetterOnlyOnce.kt b/js/js.translator/testData/box/operatorOverloading/operatorOverloadOnPropertyCallGetterAndSetterOnlyOnce.kt similarity index 74% rename from js/js.translator/testData/operatorOverloading/cases/operatorOverloadOnPropertyCallGetterAndSetterOnlyOnce.kt rename to js/js.translator/testData/box/operatorOverloading/operatorOverloadOnPropertyCallGetterAndSetterOnlyOnce.kt index 9034fc50c84..17906fd8b70 100644 --- a/js/js.translator/testData/operatorOverloading/cases/operatorOverloadOnPropertyCallGetterAndSetterOnlyOnce.kt +++ b/js/js.translator/testData/box/operatorOverloading/operatorOverloadOnPropertyCallGetterAndSetterOnlyOnce.kt @@ -25,8 +25,10 @@ class A() { } -fun box(): Boolean { +fun box(): String { val t = A() - val d = t.b++; - return (t.sc == 1) && (t.gc == 1); + val d = t.b++ + if (t.sc != 1) return "fail1" + if (t.gc != 1) return "fail2" + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignArrayList.kt b/js/js.translator/testData/box/operatorOverloading/overloadPlusAssignArrayList.kt similarity index 100% rename from js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignArrayList.kt rename to js/js.translator/testData/box/operatorOverloading/overloadPlusAssignArrayList.kt diff --git a/js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaExtensionFunction.kt b/js/js.translator/testData/box/operatorOverloading/overloadPlusAssignViaExtensionFunction.kt similarity index 62% rename from js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaExtensionFunction.kt rename to js/js.translator/testData/box/operatorOverloading/overloadPlusAssignViaExtensionFunction.kt index 9767349b59e..5b91b53d827 100644 --- a/js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaExtensionFunction.kt +++ b/js/js.translator/testData/box/operatorOverloading/overloadPlusAssignViaExtensionFunction.kt @@ -12,12 +12,16 @@ operator fun A.plusAssign(other: Collection) { addAll(other) } -fun box(): Boolean { +fun box(): String { var v1 = arrayListOf("foo") val v2 = listOf("bar") val a = A(v1) a += v2 - return (v1.size == 2 && v1[0] == "foo" && v1[1] == "bar") + if (v1.size != 2) return "fail1: ${v1.size}" + if (v1[0] != "foo") return "fail2: ${v1[0]}" + if (v1[1] != "bar") return "fail3: ${v1[1]}" + + return "OK" } diff --git a/js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaPlusExtensionFunction.kt b/js/js.translator/testData/box/operatorOverloading/overloadPlusAssignViaPlusExtensionFunction.kt similarity index 77% rename from js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaPlusExtensionFunction.kt rename to js/js.translator/testData/box/operatorOverloading/overloadPlusAssignViaPlusExtensionFunction.kt index 3e5c8ca2683..514cda1529a 100644 --- a/js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaPlusExtensionFunction.kt +++ b/js/js.translator/testData/box/operatorOverloading/overloadPlusAssignViaPlusExtensionFunction.kt @@ -9,8 +9,8 @@ operator fun Foo.plus(x: T): Foo = Foo(x) operator fun MutableFoo.plus(x: T): MutableFoo = MutableFoo(x) -fun box(): Boolean { +fun box(): String { var f = MutableFoo(1) f += 2 - return (f is MutableFoo && f.value == 2) + return if (f is MutableFoo && f.value == 2) "OK" else "fail" } diff --git a/js/js.translator/testData/operatorOverloading/cases/overloadPlusViaExtensionFunction.kt b/js/js.translator/testData/box/operatorOverloading/overloadPlusViaExtensionFunction.kt similarity index 63% rename from js/js.translator/testData/operatorOverloading/cases/overloadPlusViaExtensionFunction.kt rename to js/js.translator/testData/box/operatorOverloading/overloadPlusViaExtensionFunction.kt index eecf9d74fa8..6ee57899958 100644 --- a/js/js.translator/testData/operatorOverloading/cases/overloadPlusViaExtensionFunction.kt +++ b/js/js.translator/testData/box/operatorOverloading/overloadPlusViaExtensionFunction.kt @@ -9,12 +9,16 @@ operator fun ArrayList.plus(other: Collection): List { return c } -fun box(): Boolean { +fun box(): String { var v1 = ArrayList() v1.add("foo") val v2 = ArrayList() v2.add("bar") val v = v1 + v2 - return (v.size == 2 && v[0] == "foo" && v[1] == "bar") + if (v.size != 2) return "fail1: ${v.size}" + if (v[0] != "foo") return "fail2: ${v[0]}" + if (v[1] != "bar") return "fail3: ${v[1]}" + + return "OK" } diff --git a/js/js.translator/testData/box/operatorOverloading/overloadUnaryOperationsViaExtensionFunctions.kt b/js/js.translator/testData/box/operatorOverloading/overloadUnaryOperationsViaExtensionFunctions.kt new file mode 100644 index 00000000000..d18e2885424 --- /dev/null +++ b/js/js.translator/testData/box/operatorOverloading/overloadUnaryOperationsViaExtensionFunctions.kt @@ -0,0 +1,19 @@ +package foo + +class A(val c: Int) { +} + + +operator fun A.inc() = A(5) +operator fun A.dec() = A(10) + +fun box(): String { + var a = A(1) + + if ((++a).c != 5) return "fail1" + if ((a++).c != 5) return "fail2" + if ((--a).c != 10) return "fail3" + if ((a--).c != 10) return "fail4" + + return "OK" +} diff --git a/js/js.translator/testData/operatorOverloading/cases/overloadedCallOnProperty.kt b/js/js.translator/testData/box/operatorOverloading/overloadedCallOnProperty.kt similarity index 76% rename from js/js.translator/testData/operatorOverloading/cases/overloadedCallOnProperty.kt rename to js/js.translator/testData/box/operatorOverloading/overloadedCallOnProperty.kt index d56d9025e90..47db947f246 100644 --- a/js/js.translator/testData/operatorOverloading/cases/overloadedCallOnProperty.kt +++ b/js/js.translator/testData/box/operatorOverloading/overloadedCallOnProperty.kt @@ -14,8 +14,8 @@ class MyInt() { } -fun box(): Boolean { +fun box(): String { a++; a++; - return (a.b == 2); + return if (a.b == 2) "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/box/operatorOverloading/plusAndMinusAsAnExpression.kt b/js/js.translator/testData/box/operatorOverloading/plusAndMinusAsAnExpression.kt new file mode 100644 index 00000000000..d56018ad2a6 --- /dev/null +++ b/js/js.translator/testData/box/operatorOverloading/plusAndMinusAsAnExpression.kt @@ -0,0 +1,13 @@ +package foo + +class A() { + + operator fun unaryPlus() = "O" + operator fun unaryMinus() = "K" + +} + +fun box(): String { + var c = A() + return +c + -c +} \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/plusAssignNoReassign.kt b/js/js.translator/testData/box/operatorOverloading/plusAssignNoReassign.kt similarity index 68% rename from js/js.translator/testData/operatorOverloading/cases/plusAssignNoReassign.kt rename to js/js.translator/testData/box/operatorOverloading/plusAssignNoReassign.kt index ec651ca1d2a..b3f188d69bf 100644 --- a/js/js.translator/testData/operatorOverloading/cases/plusAssignNoReassign.kt +++ b/js/js.translator/testData/box/operatorOverloading/plusAssignNoReassign.kt @@ -9,9 +9,9 @@ class A() { } -fun box(): Boolean { +fun box(): String { var c = A() c += A() c += A() - return c.message == "!!" + return if (c.message == "!!") return "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/plusOverload.kt b/js/js.translator/testData/box/operatorOverloading/plusOverload.kt similarity index 60% rename from js/js.translator/testData/operatorOverloading/cases/plusOverload.kt rename to js/js.translator/testData/box/operatorOverloading/plusOverload.kt index 47ace977009..8e4021268f5 100644 --- a/js/js.translator/testData/operatorOverloading/cases/plusOverload.kt +++ b/js/js.translator/testData/box/operatorOverloading/plusOverload.kt @@ -6,7 +6,7 @@ class myInt(a: Int) { operator fun plus(other: myInt): myInt = myInt(value + other.value) } -fun box(): Boolean { +fun box(): String { - return (myInt(3) + myInt(5)).value == 8 + return if ((myInt(3) + myInt(5)).value == 8) "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/postfixInc.kt b/js/js.translator/testData/box/operatorOverloading/postfixInc.kt similarity index 74% rename from js/js.translator/testData/operatorOverloading/cases/postfixInc.kt rename to js/js.translator/testData/box/operatorOverloading/postfixInc.kt index d1f4a2d38f0..0a0e62537d0 100644 --- a/js/js.translator/testData/operatorOverloading/cases/postfixInc.kt +++ b/js/js.translator/testData/box/operatorOverloading/postfixInc.kt @@ -11,8 +11,8 @@ class MyInt() { } -fun box(): Boolean { +fun box(): String { var c = MyInt() c++; - return (c.b == 1); + return if (c.b == 1) "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/postfixOnProperty.kt b/js/js.translator/testData/box/operatorOverloading/postfixOnProperty.kt similarity index 57% rename from js/js.translator/testData/operatorOverloading/cases/postfixOnProperty.kt rename to js/js.translator/testData/box/operatorOverloading/postfixOnProperty.kt index 08b428a76b0..d303f1a6d09 100644 --- a/js/js.translator/testData/operatorOverloading/cases/postfixOnProperty.kt +++ b/js/js.translator/testData/box/operatorOverloading/postfixOnProperty.kt @@ -12,7 +12,11 @@ class MyInt() { } -fun box(): Boolean { +fun box(): String { val d = a++; - return (a.b == 1) && (d.b == 1); + + if (a.b != 1) return "fail1: ${a.b}" + if (d.b != 1) return "fail2: ${d.b}" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/prefixDecOverload.kt b/js/js.translator/testData/box/operatorOverloading/prefixDecOverload.kt similarity index 71% rename from js/js.translator/testData/operatorOverloading/cases/prefixDecOverload.kt rename to js/js.translator/testData/box/operatorOverloading/prefixDecOverload.kt index 9421e7b5be6..7e76e8656eb 100644 --- a/js/js.translator/testData/operatorOverloading/cases/prefixDecOverload.kt +++ b/js/js.translator/testData/box/operatorOverloading/prefixDecOverload.kt @@ -11,8 +11,8 @@ class MyInt() { } -fun box(): Boolean { +fun box(): String { var c = MyInt() --c; - return (c.b == 1); + return if (c.b == 1) "OK" else "fail: ${c.b}" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/prefixIncReturnsCorrectValue.kt b/js/js.translator/testData/box/operatorOverloading/prefixIncReturnsCorrectValue.kt similarity index 70% rename from js/js.translator/testData/operatorOverloading/cases/prefixIncReturnsCorrectValue.kt rename to js/js.translator/testData/box/operatorOverloading/prefixIncReturnsCorrectValue.kt index 3db3bc69bae..644e09069ae 100644 --- a/js/js.translator/testData/operatorOverloading/cases/prefixIncReturnsCorrectValue.kt +++ b/js/js.translator/testData/box/operatorOverloading/prefixIncReturnsCorrectValue.kt @@ -10,8 +10,8 @@ class MyInt() { } -fun box(): Boolean { +fun box(): String { var c = MyInt() val d = --c; - return (c.b == 1); + return if (c.b == 1) "OK" else "fail: ${c.b}" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/unaryOnIntProperty.kt b/js/js.translator/testData/box/operatorOverloading/unaryOnIntProperty.kt similarity index 69% rename from js/js.translator/testData/operatorOverloading/cases/unaryOnIntProperty.kt rename to js/js.translator/testData/box/operatorOverloading/unaryOnIntProperty.kt index 7330174351c..dbb6a824dd3 100644 --- a/js/js.translator/testData/operatorOverloading/cases/unaryOnIntProperty.kt +++ b/js/js.translator/testData/box/operatorOverloading/unaryOnIntProperty.kt @@ -8,8 +8,8 @@ class MyInt(i: Int) { } } -fun box(): Boolean { +fun box(): String { var t = MyInt(0) t++; - return (t.b == 0) + return if (t.b == 0) "OK" else "fail: ${t.b}" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/unaryOnIntPropertyAsStatement.kt b/js/js.translator/testData/box/operatorOverloading/unaryOnIntPropertyAsStatement.kt similarity index 68% rename from js/js.translator/testData/operatorOverloading/cases/unaryOnIntPropertyAsStatement.kt rename to js/js.translator/testData/box/operatorOverloading/unaryOnIntPropertyAsStatement.kt index 92600286c2b..905e34d7b73 100644 --- a/js/js.translator/testData/operatorOverloading/cases/unaryOnIntPropertyAsStatement.kt +++ b/js/js.translator/testData/box/operatorOverloading/unaryOnIntPropertyAsStatement.kt @@ -8,8 +8,8 @@ class MyInt(i: Int) { } } -fun box(): Boolean { +fun box(): String { var t = MyInt(0) t++; - return (t.b == 1) + return if (t.b == 1) "OK" else "fail: ${t.b}" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/usingModInCaseModAssignNotAvailable.kt b/js/js.translator/testData/box/operatorOverloading/usingModInCaseModAssignNotAvailable.kt similarity index 65% rename from js/js.translator/testData/operatorOverloading/cases/usingModInCaseModAssignNotAvailable.kt rename to js/js.translator/testData/box/operatorOverloading/usingModInCaseModAssignNotAvailable.kt index d5683116bad..17935b050a4 100644 --- a/js/js.translator/testData/operatorOverloading/cases/usingModInCaseModAssignNotAvailable.kt +++ b/js/js.translator/testData/box/operatorOverloading/usingModInCaseModAssignNotAvailable.kt @@ -7,9 +7,9 @@ class A() { } } -fun box(): Boolean { +fun box(): String { var c = A() val d = c; c %= A(); - return (c != d) && (c.p == "yeah") + return if ((c != d) && (c.p == "yeah")) "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/binaryDivOverload.kt b/js/js.translator/testData/operatorOverloading/cases/binaryDivOverload.kt deleted file mode 100644 index d9bf109ce50..00000000000 --- a/js/js.translator/testData/operatorOverloading/cases/binaryDivOverload.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -class A() { - - operator fun div(other: A) = "hooray" - -} - -fun box() = ((A() / A()) == "hooray") \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/compareTo.kt b/js/js.translator/testData/operatorOverloading/cases/compareTo.kt deleted file mode 100644 index e353778db6c..00000000000 --- a/js/js.translator/testData/operatorOverloading/cases/compareTo.kt +++ /dev/null @@ -1,11 +0,0 @@ -package foo - - -class A(t: Int) { - var i = t - operator fun compareTo(other: A) = (this.i - other.i) -} - -fun box(): Boolean { - return (A(3) > A(2)) && (A(2) >= A(2)) && (A(1) >= A(0)) && (A(2) <= A(2)) && (A(3) <= A(4)) && (A(0) < A(100)) -} diff --git a/js/js.translator/testData/operatorOverloading/cases/compareToByName.kt b/js/js.translator/testData/operatorOverloading/cases/compareToByName.kt deleted file mode 100644 index fa583af3b1e..00000000000 --- a/js/js.translator/testData/operatorOverloading/cases/compareToByName.kt +++ /dev/null @@ -1,14 +0,0 @@ -package foo - - -class A(t: Int) { - var i = t - infix operator fun compareTo(other: A) = (this.i - other.i) -} - -fun box(): Boolean = - (A(3) compareTo A(2) > 0) && - (A(2) compareTo A(2) == 0) && - (A(1) compareTo A(0) > 0) && - (A(3) compareTo A(4) < 0) && - (A(0) compareTo A(100) < 0) diff --git a/js/js.translator/testData/operatorOverloading/cases/notOverload.kt b/js/js.translator/testData/operatorOverloading/cases/notOverload.kt deleted file mode 100644 index 23ea97dca26..00000000000 --- a/js/js.translator/testData/operatorOverloading/cases/notOverload.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -class A() { - - operator fun not() = "hooray" - -} - -fun box() = (!A() == "hooray") \ No newline at end of file diff --git a/js/js.translator/testData/operatorOverloading/cases/overloadUnaryOperationsViaExtensionFunctions.kt b/js/js.translator/testData/operatorOverloading/cases/overloadUnaryOperationsViaExtensionFunctions.kt deleted file mode 100644 index 10a71286862..00000000000 --- a/js/js.translator/testData/operatorOverloading/cases/overloadUnaryOperationsViaExtensionFunctions.kt +++ /dev/null @@ -1,13 +0,0 @@ -package foo - -class A(val c: Int) { -} - - -operator fun A.inc() = A(5) -operator fun A.dec() = A(10) - -fun box(): Boolean { - var a = A(1) - return ((++a).c == 5 && (a++).c == 5 && (--a).c == 10 && (a--).c == 10) -} diff --git a/js/js.translator/testData/operatorOverloading/cases/plusAndMinusAsAnExpression.kt b/js/js.translator/testData/operatorOverloading/cases/plusAndMinusAsAnExpression.kt deleted file mode 100644 index 04980fb0036..00000000000 --- a/js/js.translator/testData/operatorOverloading/cases/plusAndMinusAsAnExpression.kt +++ /dev/null @@ -1,13 +0,0 @@ -package foo - -class A() { - - operator fun unaryPlus() = "hooray" - operator fun unaryMinus() = "not really" - -} - -fun box(): Boolean { - var c = A() - return (+c + -c == "hooraynot really") -} \ No newline at end of file