diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 5af1d9a31dc..5111264ce98 100755 --- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -1149,18 +1149,6 @@ fun main(args: Array) { model("multiModule/cases") } - testClass() { - model("inlineStdlib/cases") - } - - testClass() { - model("inlineEvaluationOrder/cases") - } - - testClass() { - model("inlineMultiModule/cases") - } - testClass() { model("labels/cases") } @@ -1169,10 +1157,6 @@ fun main(args: Array) { model("jsCode/cases") } - testClass() { - model("inlineSizeReduction/cases") - } - testClass() { model("reified/cases") } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt index 18ba2c81425..e5cf4c91250 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicBoxTest.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.js.test import com.google.dart.compiler.backend.js.ast.JsProgram +import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.vfs.StandardFileSystems import com.intellij.openapi.vfs.VirtualFileManager import com.intellij.psi.PsiManager @@ -240,7 +241,7 @@ abstract class BasicBoxTest( } override fun close() { - tmpDir.delete() + FileUtil.delete(tmpDir); } } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractInlineSizeReductionTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractInlineSizeReductionTest.java deleted file mode 100644 index a94689cc16f..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractInlineSizeReductionTest.java +++ /dev/null @@ -1,25 +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.test.AbstractSingleFileTranslationWithDirectivesTest; - -public abstract class AbstractInlineSizeReductionTest extends AbstractSingleFileTranslationWithDirectivesTest { - public AbstractInlineSizeReductionTest() { - super("inlineSizeReduction/"); - } -} 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 ac3b65b64a1..a88b0fbdddf 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 @@ -3604,4 +3604,715 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { doTest(fileName); } } + + @TestMetadata("js/js.translator/testData/box/inlineEvaluationOrder") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class InlineEvaluationOrder extends AbstractBoxJsTest { + public void testAllFilesPresentInInlineEvaluationOrder() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/inlineEvaluationOrder"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("argumentOfCall.kt") + public void testArgumentOfCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/argumentOfCall.kt"); + doTest(fileName); + } + + @TestMetadata("argumentOfCallMultipleInlineCalls.kt") + public void testArgumentOfCallMultipleInlineCalls() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/argumentOfCallMultipleInlineCalls.kt"); + doTest(fileName); + } + + @TestMetadata("argumentOfInlineCall.kt") + public void testArgumentOfInlineCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/argumentOfInlineCall.kt"); + doTest(fileName); + } + + @TestMetadata("argumentOfNew.kt") + public void testArgumentOfNew() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/argumentOfNew.kt"); + doTest(fileName); + } + + @TestMetadata("arrayAccess1.kt") + public void testArrayAccess1() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/arrayAccess1.kt"); + doTest(fileName); + } + + @TestMetadata("arrayAccess2.kt") + public void testArrayAccess2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/arrayAccess2.kt"); + doTest(fileName); + } + + @TestMetadata("arrayAccess3.kt") + public void testArrayAccess3() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/arrayAccess3.kt"); + doTest(fileName); + } + + @TestMetadata("arrayAccessLhsDecomposed.kt") + public void testArrayAccessLhsDecomposed() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/arrayAccessLhsDecomposed.kt"); + doTest(fileName); + } + + @TestMetadata("arrayLiteral.kt") + public void testArrayLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/arrayLiteral.kt"); + doTest(fileName); + } + + @TestMetadata("arrayLiteralMultipleInlineCalls.kt") + public void testArrayLiteralMultipleInlineCalls() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/arrayLiteralMultipleInlineCalls.kt"); + doTest(fileName); + } + + @TestMetadata("arrayLiteralNested.kt") + public void testArrayLiteralNested() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/arrayLiteralNested.kt"); + doTest(fileName); + } + + @TestMetadata("assignment.kt") + public void testAssignment() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/assignment.kt"); + doTest(fileName); + } + + @TestMetadata("binaryOperator.kt") + public void testBinaryOperator() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/binaryOperator.kt"); + doTest(fileName); + } + + @TestMetadata("binaryOperatorMultipleInlineCalls.kt") + public void testBinaryOperatorMultipleInlineCalls() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/binaryOperatorMultipleInlineCalls.kt"); + doTest(fileName); + } + + @TestMetadata("callQualifier.kt") + public void testCallQualifier() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/callQualifier.kt"); + doTest(fileName); + } + + @TestMetadata("callQualifierComplex.kt") + public void testCallQualifierComplex() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/callQualifierComplex.kt"); + doTest(fileName); + } + + @TestMetadata("conditional.kt") + public void testConditional() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/conditional.kt"); + doTest(fileName); + } + + @TestMetadata("conditionalElvis.kt") + public void testConditionalElvis() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/conditionalElvis.kt"); + doTest(fileName); + } + + @TestMetadata("conditionalNested.kt") + public void testConditionalNested() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/conditionalNested.kt"); + doTest(fileName); + } + + @TestMetadata("conditionalTestExpression.kt") + public void testConditionalTestExpression() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/conditionalTestExpression.kt"); + doTest(fileName); + } + + @TestMetadata("conditionalTestExpressionElvis.kt") + public void testConditionalTestExpressionElvis() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/conditionalTestExpressionElvis.kt"); + doTest(fileName); + } + + @TestMetadata("continueInExtractedDoWhile.kt") + public void testContinueInExtractedDoWhile() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/continueInExtractedDoWhile.kt"); + doTest(fileName); + } + + @TestMetadata("doWhile.kt") + public void testDoWhile() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/doWhile.kt"); + doTest(fileName); + } + + @TestMetadata("doWhileComplex.kt") + public void testDoWhileComplex() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/doWhileComplex.kt"); + doTest(fileName); + } + + @TestMetadata("for.kt") + public void testFor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/for.kt"); + doTest(fileName); + } + + @TestMetadata("if.kt") + public void testIf() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/if.kt"); + doTest(fileName); + } + + @TestMetadata("inlineFunctionAsParameterOfQualifiedCall.kt") + public void testInlineFunctionAsParameterOfQualifiedCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/inlineFunctionAsParameterOfQualifiedCall.kt"); + doTest(fileName); + } + + @TestMetadata("lambdaPropertyExtracted.kt") + public void testLambdaPropertyExtracted() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/lambdaPropertyExtracted.kt"); + doTest(fileName); + } + + @TestMetadata("lambdaWithClosure.kt") + public void testLambdaWithClosure() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/lambdaWithClosure.kt"); + doTest(fileName); + } + + @TestMetadata("logicalAnd.kt") + public void testLogicalAnd() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/logicalAnd.kt"); + doTest(fileName); + } + + @TestMetadata("logicalAndOrMultipleInlineCalls.kt") + public void testLogicalAndOrMultipleInlineCalls() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/logicalAndOrMultipleInlineCalls.kt"); + doTest(fileName); + } + + @TestMetadata("logicalOr.kt") + public void testLogicalOr() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/logicalOr.kt"); + doTest(fileName); + } + + @TestMetadata("methodCallQualifierWithSideEffect.kt") + public void testMethodCallQualifierWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/methodCallQualifierWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("methodDecomposedWithBind.kt") + public void testMethodDecomposedWithBind() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/methodDecomposedWithBind.kt"); + doTest(fileName); + } + + @TestMetadata("methodInlineCallQualifierWithSideEffect.kt") + public void testMethodInlineCallQualifierWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/methodInlineCallQualifierWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("multiDeclaration.kt") + public void testMultiDeclaration() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/multiDeclaration.kt"); + doTest(fileName); + } + + @TestMetadata("multiDeclarationComplex.kt") + public void testMultiDeclarationComplex() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/multiDeclarationComplex.kt"); + doTest(fileName); + } + + @TestMetadata("nestedContinueInExtractedDoWhile.kt") + public void testNestedContinueInExtractedDoWhile() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/nestedContinueInExtractedDoWhile.kt"); + doTest(fileName); + } + + @TestMetadata("nestedInlineCall.kt") + public void testNestedInlineCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/nestedInlineCall.kt"); + doTest(fileName); + } + + @TestMetadata("propertiesInitializationOrder.kt") + public void testPropertiesInitializationOrder() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/propertiesInitializationOrder.kt"); + doTest(fileName); + } + + @TestMetadata("propertiesInitializationOrderSimple.kt") + public void testPropertiesInitializationOrderSimple() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/propertiesInitializationOrderSimple.kt"); + doTest(fileName); + } + + @TestMetadata("propertyAccessAfterModification.kt") + public void testPropertyAccessAfterModification() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/propertyAccessAfterModification.kt"); + doTest(fileName); + } + + @TestMetadata("propertyAccessAndInitializer.kt") + public void testPropertyAccessAndInitializer() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/propertyAccessAndInitializer.kt"); + doTest(fileName); + } + + @TestMetadata("propertyAccessWithSideEffect.kt") + public void testPropertyAccessWithSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/propertyAccessWithSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("propertyWithSideEffectExtracted.kt") + public void testPropertyWithSideEffectExtracted() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/propertyWithSideEffectExtracted.kt"); + doTest(fileName); + } + + @TestMetadata("propertyWithSideEffectPassedToInlineFunction.kt") + public void testPropertyWithSideEffectPassedToInlineFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/propertyWithSideEffectPassedToInlineFunction.kt"); + doTest(fileName); + } + + @TestMetadata("ternaryConditional.kt") + public void testTernaryConditional() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/ternaryConditional.kt"); + doTest(fileName); + } + + @TestMetadata("while.kt") + public void testWhile() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/while.kt"); + doTest(fileName); + } + + @TestMetadata("whileComplex.kt") + public void testWhileComplex() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/whileComplex.kt"); + doTest(fileName); + } + + @TestMetadata("whileConditionExtracted.kt") + public void testWhileConditionExtracted() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineEvaluationOrder/whileConditionExtracted.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/inlineMultiFile") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class InlineMultiFile extends AbstractBoxJsTest { + public void testAllFilesPresentInInlineMultiFile() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/inlineMultiFile"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("anonymousObjectOnCallSite.kt") + public void testAnonymousObjectOnCallSite() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnCallSite.kt"); + doTest(fileName); + } + + @TestMetadata("anonymousObjectOnCallSiteSuperParams.kt") + public void testAnonymousObjectOnCallSiteSuperParams() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnCallSiteSuperParams.kt"); + doTest(fileName); + } + + @TestMetadata("anonymousObjectOnDeclarationSite.kt") + public void testAnonymousObjectOnDeclarationSite() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnDeclarationSite.kt"); + doTest(fileName); + } + + @TestMetadata("anonymousObjectOnDeclarationSiteSuperParams.kt") + public void testAnonymousObjectOnDeclarationSiteSuperParams() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnDeclarationSiteSuperParams.kt"); + doTest(fileName); + } + + @TestMetadata("builders.kt") + public void testBuilders() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/builders.kt"); + doTest(fileName); + } + + @TestMetadata("buildersAndLambdaCapturing.kt") + public void testBuildersAndLambdaCapturing() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/buildersAndLambdaCapturing.kt"); + doTest(fileName); + } + + @TestMetadata("captureInlinable.kt") + public void testCaptureInlinable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/captureInlinable.kt"); + doTest(fileName); + } + + @TestMetadata("captureInlinableAndOther.kt") + public void testCaptureInlinableAndOther() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/captureInlinableAndOther.kt"); + doTest(fileName); + } + + @TestMetadata("captureThisAndReceiver.kt") + public void testCaptureThisAndReceiver() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/captureThisAndReceiver.kt"); + doTest(fileName); + } + + @TestMetadata("closureChain.kt") + public void testClosureChain() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/closureChain.kt"); + doTest(fileName); + } + + @TestMetadata("defaultMethod.kt") + public void testDefaultMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/defaultMethod.kt"); + doTest(fileName); + } + + @TestMetadata("generics.kt") + public void testGenerics() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/generics.kt"); + doTest(fileName); + } + + @TestMetadata("inlineInDefaultParameter.kt") + public void testInlineInDefaultParameter() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/inlineInDefaultParameter.kt"); + doTest(fileName); + } + + @TestMetadata("inlineMultiFileSimple.kt") + public void testInlineMultiFileSimple() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/inlineMultiFileSimple.kt"); + doTest(fileName); + } + + @TestMetadata("lambdaCloning.kt") + public void testLambdaCloning() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/lambdaCloning.kt"); + doTest(fileName); + } + + @TestMetadata("lambdaInLambda2.kt") + public void testLambdaInLambda2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/lambdaInLambda2.kt"); + doTest(fileName); + } + + @TestMetadata("lambdaInLambdaNoInline.kt") + public void testLambdaInLambdaNoInline() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/lambdaInLambdaNoInline.kt"); + doTest(fileName); + } + + @TestMetadata("regeneratedLambdaName.kt") + public void testRegeneratedLambdaName() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/regeneratedLambdaName.kt"); + doTest(fileName); + } + + @TestMetadata("sameCaptured.kt") + public void testSameCaptured() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/sameCaptured.kt"); + doTest(fileName); + } + + @TestMetadata("simpleCapturingInClass.kt") + public void testSimpleCapturingInClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/simpleCapturingInClass.kt"); + doTest(fileName); + } + + @TestMetadata("simpleCapturingInPackage.kt") + public void testSimpleCapturingInPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/simpleCapturingInPackage.kt"); + doTest(fileName); + } + + @TestMetadata("simpleDefaultMethod.kt") + public void testSimpleDefaultMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/simpleDefaultMethod.kt"); + doTest(fileName); + } + + @TestMetadata("trait.kt") + public void testTrait() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/trait.kt"); + doTest(fileName); + } + + @TestMetadata("tryCatch.kt") + public void testTryCatch() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/tryCatch.kt"); + doTest(fileName); + } + + @TestMetadata("tryCatch2.kt") + public void testTryCatch2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/tryCatch2.kt"); + doTest(fileName); + } + + @TestMetadata("tryCatchFinally.kt") + public void testTryCatchFinally() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/tryCatchFinally.kt"); + doTest(fileName); + } + + @TestMetadata("use.kt") + public void testUse() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/use.kt"); + doTest(fileName); + } + + @TestMetadata("with.kt") + public void testWith() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiFile/with.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/inlineMultiModule") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class InlineMultiModule extends AbstractBoxJsTest { + public void testAllFilesPresentInInlineMultiModule() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/inlineMultiModule"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("anotherModuleValInClosure.kt") + public void testAnotherModuleValInClosure() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/anotherModuleValInClosure.kt"); + doTest(fileName); + } + + @TestMetadata("callableReference.kt") + public void testCallableReference() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/callableReference.kt"); + doTest(fileName); + } + + @TestMetadata("calledByFqName.kt") + public void testCalledByFqName() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/calledByFqName.kt"); + doTest(fileName); + } + + @TestMetadata("extensionLambda.kt") + public void testExtensionLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/extensionLambda.kt"); + doTest(fileName); + } + + @TestMetadata("externalInlineCallDecomposed.kt") + public void testExternalInlineCallDecomposed() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/externalInlineCallDecomposed.kt"); + doTest(fileName); + } + + @TestMetadata("externalInlineNewDecomposed.kt") + public void testExternalInlineNewDecomposed() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/externalInlineNewDecomposed.kt"); + doTest(fileName); + } + + @TestMetadata("lambda.kt") + public void testLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/lambda.kt"); + doTest(fileName); + } + + @TestMetadata("lambdaCalledInObjectLiteral.kt") + public void testLambdaCalledInObjectLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/lambdaCalledInObjectLiteral.kt"); + doTest(fileName); + } + + @TestMetadata("lambdaWithClosure.kt") + public void testLambdaWithClosure() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/lambdaWithClosure.kt"); + doTest(fileName); + } + + @TestMetadata("localNameClash.kt") + public void testLocalNameClash() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/localNameClash.kt"); + doTest(fileName); + } + + @TestMetadata("method.kt") + public void testMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/method.kt"); + doTest(fileName); + } + + @TestMetadata("parameterWithDefaultValue.kt") + public void testParameterWithDefaultValue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/parameterWithDefaultValue.kt"); + doTest(fileName); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineMultiModule/simple.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/inlineSizeReduction") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class InlineSizeReduction extends AbstractBoxJsTest { + public void testAllFilesPresentInInlineSizeReduction() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/inlineSizeReduction"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("inlineOrder.kt") + public void testInlineOrder() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/inlineOrder.kt"); + doTest(fileName); + } + + @TestMetadata("lastBreak.kt") + public void testLastBreak() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/lastBreak.kt"); + doTest(fileName); + } + + @TestMetadata("noDuplicateVariableDeclaration.kt") + public void testNoDuplicateVariableDeclaration() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/noDuplicateVariableDeclaration.kt"); + doTest(fileName); + } + + @TestMetadata("oneTopLevelReturn.kt") + public void testOneTopLevelReturn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/oneTopLevelReturn.kt"); + doTest(fileName); + } + + @TestMetadata("propertyAssignment.kt") + public void testPropertyAssignment() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/propertyAssignment.kt"); + doTest(fileName); + } + + @TestMetadata("propertyReferenceDoesNotProduceSideEffect.kt") + public void testPropertyReferenceDoesNotProduceSideEffect() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/propertyReferenceDoesNotProduceSideEffect.kt"); + doTest(fileName); + } + + @TestMetadata("returnInlineCall.kt") + public void testReturnInlineCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/returnInlineCall.kt"); + doTest(fileName); + } + + @TestMetadata("simpleReturnFunction.kt") + public void testSimpleReturnFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/simpleReturnFunction.kt"); + doTest(fileName); + } + + @TestMetadata("ternaryConditional.kt") + public void testTernaryConditional() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/ternaryConditional.kt"); + doTest(fileName); + } + + @TestMetadata("this.kt") + public void testThis() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/this.kt"); + doTest(fileName); + } + + @TestMetadata("valAssignment.kt") + public void testValAssignment() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/valAssignment.kt"); + doTest(fileName); + } + + @TestMetadata("valDeclaration.kt") + public void testValDeclaration() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineSizeReduction/valDeclaration.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/inlineStdlib") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class InlineStdlib extends AbstractBoxJsTest { + public void testAllFilesPresentInInlineStdlib() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/inlineStdlib"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("callNameClash.kt") + public void testCallNameClash() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineStdlib/callNameClash.kt"); + doTest(fileName); + } + + @TestMetadata("callableRefToFunInCurrentModule.kt") + public void testCallableRefToFunInCurrentModule() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineStdlib/callableRefToFunInCurrentModule.kt"); + doTest(fileName); + } + + @TestMetadata("closure.kt") + public void testClosure() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineStdlib/closure.kt"); + doTest(fileName); + } + + @TestMetadata("closureInObjectLiteral.kt") + public void testClosureInObjectLiteral() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineStdlib/closureInObjectLiteral.kt"); + doTest(fileName); + } + + @TestMetadata("closureNested.kt") + public void testClosureNested() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineStdlib/closureNested.kt"); + doTest(fileName); + } + + @TestMetadata("localNamesClash.kt") + public void testLocalNamesClash() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineStdlib/localNamesClash.kt"); + doTest(fileName); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineStdlib/simple.kt"); + doTest(fileName); + } + + @TestMetadata("thisInExtension.kt") + public void testThisInExtension() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/inlineStdlib/thisInExtension.kt"); + doTest(fileName); + } + } } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineEvaluationOrderTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineEvaluationOrderTestGenerated.java deleted file mode 100644 index 75d25e97a3a..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineEvaluationOrderTestGenerated.java +++ /dev/null @@ -1,337 +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/inlineEvaluationOrder/cases") -@TestDataPath("$PROJECT_ROOT") -@RunWith(JUnit3RunnerWithInners.class) -public class InlineEvaluationOrderTestGenerated extends AbstractInlineEvaluationOrderTest { - public void testAllFilesPresentInCases() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/inlineEvaluationOrder/cases"), Pattern.compile("^(.+)\\.kt$"), true); - } - - @TestMetadata("argumentOfCall.kt") - public void testArgumentOfCall() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfCall.kt"); - doTest(fileName); - } - - @TestMetadata("argumentOfCallMultipleInlineCalls.kt") - public void testArgumentOfCallMultipleInlineCalls() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfCallMultipleInlineCalls.kt"); - doTest(fileName); - } - - @TestMetadata("argumentOfInlineCall.kt") - public void testArgumentOfInlineCall() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfInlineCall.kt"); - doTest(fileName); - } - - @TestMetadata("argumentOfNew.kt") - public void testArgumentOfNew() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfNew.kt"); - doTest(fileName); - } - - @TestMetadata("arrayAccess1.kt") - public void testArrayAccess1() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccess1.kt"); - doTest(fileName); - } - - @TestMetadata("arrayAccess2.kt") - public void testArrayAccess2() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccess2.kt"); - doTest(fileName); - } - - @TestMetadata("arrayAccess3.kt") - public void testArrayAccess3() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccess3.kt"); - doTest(fileName); - } - - @TestMetadata("arrayAccessLhsDecomposed.kt") - public void testArrayAccessLhsDecomposed() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccessLhsDecomposed.kt"); - doTest(fileName); - } - - @TestMetadata("arrayLiteral.kt") - public void testArrayLiteral() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/arrayLiteral.kt"); - doTest(fileName); - } - - @TestMetadata("arrayLiteralMultipleInlineCalls.kt") - public void testArrayLiteralMultipleInlineCalls() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/arrayLiteralMultipleInlineCalls.kt"); - doTest(fileName); - } - - @TestMetadata("arrayLiteralNested.kt") - public void testArrayLiteralNested() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/arrayLiteralNested.kt"); - doTest(fileName); - } - - @TestMetadata("assignment.kt") - public void testAssignment() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/assignment.kt"); - doTest(fileName); - } - - @TestMetadata("binaryOperator.kt") - public void testBinaryOperator() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/binaryOperator.kt"); - doTest(fileName); - } - - @TestMetadata("binaryOperatorMultipleInlineCalls.kt") - public void testBinaryOperatorMultipleInlineCalls() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/binaryOperatorMultipleInlineCalls.kt"); - doTest(fileName); - } - - @TestMetadata("callQualifier.kt") - public void testCallQualifier() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/callQualifier.kt"); - doTest(fileName); - } - - @TestMetadata("callQualifierComplex.kt") - public void testCallQualifierComplex() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/callQualifierComplex.kt"); - doTest(fileName); - } - - @TestMetadata("conditional.kt") - public void testConditional() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/conditional.kt"); - doTest(fileName); - } - - @TestMetadata("conditionalElvis.kt") - public void testConditionalElvis() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/conditionalElvis.kt"); - doTest(fileName); - } - - @TestMetadata("conditionalNested.kt") - public void testConditionalNested() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/conditionalNested.kt"); - doTest(fileName); - } - - @TestMetadata("conditionalTestExpression.kt") - public void testConditionalTestExpression() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/conditionalTestExpression.kt"); - doTest(fileName); - } - - @TestMetadata("conditionalTestExpressionElvis.kt") - public void testConditionalTestExpressionElvis() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/conditionalTestExpressionElvis.kt"); - doTest(fileName); - } - - @TestMetadata("continueInExtractedDoWhile.kt") - public void testContinueInExtractedDoWhile() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/continueInExtractedDoWhile.kt"); - doTest(fileName); - } - - @TestMetadata("doWhile.kt") - public void testDoWhile() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/doWhile.kt"); - doTest(fileName); - } - - @TestMetadata("doWhileComplex.kt") - public void testDoWhileComplex() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/doWhileComplex.kt"); - doTest(fileName); - } - - @TestMetadata("for.kt") - public void testFor() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/for.kt"); - doTest(fileName); - } - - @TestMetadata("if.kt") - public void testIf() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/if.kt"); - doTest(fileName); - } - - @TestMetadata("inlineFunctionAsParameterOfQualifiedCall.kt") - public void testInlineFunctionAsParameterOfQualifiedCall() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/inlineFunctionAsParameterOfQualifiedCall.kt"); - doTest(fileName); - } - - @TestMetadata("lambdaPropertyExtracted.kt") - public void testLambdaPropertyExtracted() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/lambdaPropertyExtracted.kt"); - doTest(fileName); - } - - @TestMetadata("lambdaWithClosure.kt") - public void testLambdaWithClosure() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/lambdaWithClosure.kt"); - doTest(fileName); - } - - @TestMetadata("logicalAnd.kt") - public void testLogicalAnd() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/logicalAnd.kt"); - doTest(fileName); - } - - @TestMetadata("logicalAndOrMultipleInlineCalls.kt") - public void testLogicalAndOrMultipleInlineCalls() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/logicalAndOrMultipleInlineCalls.kt"); - doTest(fileName); - } - - @TestMetadata("logicalOr.kt") - public void testLogicalOr() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/logicalOr.kt"); - doTest(fileName); - } - - @TestMetadata("methodCallQualifierWithSideEffect.kt") - public void testMethodCallQualifierWithSideEffect() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/methodCallQualifierWithSideEffect.kt"); - doTest(fileName); - } - - @TestMetadata("methodDecomposedWithBind.kt") - public void testMethodDecomposedWithBind() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/methodDecomposedWithBind.kt"); - doTest(fileName); - } - - @TestMetadata("methodInlineCallQualifierWithSideEffect.kt") - public void testMethodInlineCallQualifierWithSideEffect() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/methodInlineCallQualifierWithSideEffect.kt"); - doTest(fileName); - } - - @TestMetadata("multiDeclaration.kt") - public void testMultiDeclaration() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/multiDeclaration.kt"); - doTest(fileName); - } - - @TestMetadata("multiDeclarationComplex.kt") - public void testMultiDeclarationComplex() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/multiDeclarationComplex.kt"); - doTest(fileName); - } - - @TestMetadata("nestedContinueInExtractedDoWhile.kt") - public void testNestedContinueInExtractedDoWhile() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/nestedContinueInExtractedDoWhile.kt"); - doTest(fileName); - } - - @TestMetadata("nestedInlineCall.kt") - public void testNestedInlineCall() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/nestedInlineCall.kt"); - doTest(fileName); - } - - @TestMetadata("propertiesInitializationOrder.kt") - public void testPropertiesInitializationOrder() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/propertiesInitializationOrder.kt"); - doTest(fileName); - } - - @TestMetadata("propertiesInitializationOrderSimple.kt") - public void testPropertiesInitializationOrderSimple() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/propertiesInitializationOrderSimple.kt"); - doTest(fileName); - } - - @TestMetadata("propertyAccessAfterModification.kt") - public void testPropertyAccessAfterModification() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/propertyAccessAfterModification.kt"); - doTest(fileName); - } - - @TestMetadata("propertyAccessAndInitializer.kt") - public void testPropertyAccessAndInitializer() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/propertyAccessAndInitializer.kt"); - doTest(fileName); - } - - @TestMetadata("propertyAccessWithSideEffect.kt") - public void testPropertyAccessWithSideEffect() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/propertyAccessWithSideEffect.kt"); - doTest(fileName); - } - - @TestMetadata("propertyWithSideEffectExtracted.kt") - public void testPropertyWithSideEffectExtracted() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/propertyWithSideEffectExtracted.kt"); - doTest(fileName); - } - - @TestMetadata("propertyWithSideEffectPassedToInlineFunction.kt") - public void testPropertyWithSideEffectPassedToInlineFunction() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/propertyWithSideEffectPassedToInlineFunction.kt"); - doTest(fileName); - } - - @TestMetadata("ternaryConditional.kt") - public void testTernaryConditional() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/ternaryConditional.kt"); - doTest(fileName); - } - - @TestMetadata("while.kt") - public void testWhile() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/while.kt"); - doTest(fileName); - } - - @TestMetadata("whileComplex.kt") - public void testWhileComplex() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/whileComplex.kt"); - doTest(fileName); - } - - @TestMetadata("whileConditionExtracted.kt") - public void testWhileConditionExtracted() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineEvaluationOrder/cases/whileConditionExtracted.kt"); - doTest(fileName); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineJsStdlibTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineJsStdlibTestGenerated.java deleted file mode 100644 index aeee791f5bc..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineJsStdlibTestGenerated.java +++ /dev/null @@ -1,85 +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/inlineStdlib/cases") -@TestDataPath("$PROJECT_ROOT") -@RunWith(JUnit3RunnerWithInners.class) -public class InlineJsStdlibTestGenerated extends AbstractInlineJsStdlibTest { - public void testAllFilesPresentInCases() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/inlineStdlib/cases"), Pattern.compile("^(.+)\\.kt$"), true); - } - - @TestMetadata("callNameClash.kt") - public void testCallNameClash() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineStdlib/cases/callNameClash.kt"); - doTest(fileName); - } - - @TestMetadata("callableRefToFunInCurrentModule.kt") - public void testCallableRefToFunInCurrentModule() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineStdlib/cases/callableRefToFunInCurrentModule.kt"); - doTest(fileName); - } - - @TestMetadata("closure.kt") - public void testClosure() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineStdlib/cases/closure.kt"); - doTest(fileName); - } - - @TestMetadata("closureInObjectLiteral.kt") - public void testClosureInObjectLiteral() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineStdlib/cases/closureInObjectLiteral.kt"); - doTest(fileName); - } - - @TestMetadata("closureNested.kt") - public void testClosureNested() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineStdlib/cases/closureNested.kt"); - doTest(fileName); - } - - @TestMetadata("localNamesClash.kt") - public void testLocalNamesClash() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineStdlib/cases/localNamesClash.kt"); - doTest(fileName); - } - - @TestMetadata("simple.kt") - public void testSimple() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineStdlib/cases/simple.kt"); - doTest(fileName); - } - - @TestMetadata("thisInExtension.kt") - public void testThisInExtension() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineStdlib/cases/thisInExtension.kt"); - doTest(fileName); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineMultiModuleTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineMultiModuleTestGenerated.java deleted file mode 100644 index 86de1958b66..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineMultiModuleTestGenerated.java +++ /dev/null @@ -1,115 +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/inlineMultiModule/cases") -@TestDataPath("$PROJECT_ROOT") -@RunWith(JUnit3RunnerWithInners.class) -public class InlineMultiModuleTestGenerated extends AbstractInlineMultiModuleTest { - public void testAllFilesPresentInCases() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/inlineMultiModule/cases"), Pattern.compile("^(.+)\\.kt$"), true); - } - - @TestMetadata("anotherModuleValInClosure.kt") - public void testAnotherModuleValInClosure() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/anotherModuleValInClosure.kt"); - doTest(fileName); - } - - @TestMetadata("callableReference.kt") - public void testCallableReference() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/callableReference.kt"); - doTest(fileName); - } - - @TestMetadata("calledByFqName.kt") - public void testCalledByFqName() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/calledByFqName.kt"); - doTest(fileName); - } - - @TestMetadata("extensionLambda.kt") - public void testExtensionLambda() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/extensionLambda.kt"); - doTest(fileName); - } - - @TestMetadata("externalInlineCallDecomposed.kt") - public void testExternalInlineCallDecomposed() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/externalInlineCallDecomposed.kt"); - doTest(fileName); - } - - @TestMetadata("externalInlineNewDecomposed.kt") - public void testExternalInlineNewDecomposed() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/externalInlineNewDecomposed.kt"); - doTest(fileName); - } - - @TestMetadata("lambda.kt") - public void testLambda() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/lambda.kt"); - doTest(fileName); - } - - @TestMetadata("lambdaCalledInObjectLiteral.kt") - public void testLambdaCalledInObjectLiteral() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/lambdaCalledInObjectLiteral.kt"); - doTest(fileName); - } - - @TestMetadata("lambdaWithClosure.kt") - public void testLambdaWithClosure() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/lambdaWithClosure.kt"); - doTest(fileName); - } - - @TestMetadata("localNameClash.kt") - public void testLocalNameClash() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/localNameClash.kt"); - doTest(fileName); - } - - @TestMetadata("method.kt") - public void testMethod() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/method.kt"); - doTest(fileName); - } - - @TestMetadata("parameterWithDefaultValue.kt") - public void testParameterWithDefaultValue() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/parameterWithDefaultValue.kt"); - doTest(fileName); - } - - @TestMetadata("simple.kt") - public void testSimple() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineMultiModule/cases/simple.kt"); - doTest(fileName); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineSizeReductionTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineSizeReductionTestGenerated.java deleted file mode 100644 index ddef1a35e06..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineSizeReductionTestGenerated.java +++ /dev/null @@ -1,109 +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/inlineSizeReduction/cases") -@TestDataPath("$PROJECT_ROOT") -@RunWith(JUnit3RunnerWithInners.class) -public class InlineSizeReductionTestGenerated extends AbstractInlineSizeReductionTest { - public void testAllFilesPresentInCases() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/inlineSizeReduction/cases"), Pattern.compile("^(.+)\\.kt$"), true); - } - - @TestMetadata("inlineOrder.kt") - public void testInlineOrder() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/inlineOrder.kt"); - doTest(fileName); - } - - @TestMetadata("lastBreak.kt") - public void testLastBreak() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/lastBreak.kt"); - doTest(fileName); - } - - @TestMetadata("noDuplicateVariableDeclaration.kt") - public void testNoDuplicateVariableDeclaration() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/noDuplicateVariableDeclaration.kt"); - doTest(fileName); - } - - @TestMetadata("oneTopLevelReturn.kt") - public void testOneTopLevelReturn() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/oneTopLevelReturn.kt"); - doTest(fileName); - } - - @TestMetadata("propertyAssignment.kt") - public void testPropertyAssignment() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/propertyAssignment.kt"); - doTest(fileName); - } - - @TestMetadata("propertyReferenceDoesNotProduceSideEffect.kt") - public void testPropertyReferenceDoesNotProduceSideEffect() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/propertyReferenceDoesNotProduceSideEffect.kt"); - doTest(fileName); - } - - @TestMetadata("returnInlineCall.kt") - public void testReturnInlineCall() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/returnInlineCall.kt"); - doTest(fileName); - } - - @TestMetadata("simpleReturnFunction.kt") - public void testSimpleReturnFunction() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/simpleReturnFunction.kt"); - doTest(fileName); - } - - @TestMetadata("ternaryConditional.kt") - public void testTernaryConditional() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/ternaryConditional.kt"); - doTest(fileName); - } - - @TestMetadata("this.kt") - public void testThis() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/this.kt"); - doTest(fileName); - } - - @TestMetadata("valAssignment.kt") - public void testValAssignment() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/valAssignment.kt"); - doTest(fileName); - } - - @TestMetadata("valDeclaration.kt") - public void testValDeclaration() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inlineSizeReduction/cases/valDeclaration.kt"); - doTest(fileName); - } -} 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 7b56e37e793..8da1cd62767 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,18 +47,12 @@ abstract class AbstractCompanionObjectTest : JsBasicBoxTest("objectIntrinsics/") abstract class AbstractFunctionExpressionTest : JsBasicBoxTest("functionExpression/") -abstract class AbstractInlineEvaluationOrderTest : JsBasicBoxTest("inlineEvaluationOrder/") - -abstract class AbstractInlineJsStdlibTest : JsBasicBoxTest("inlineStdlib/") - abstract class AbstractJsCodeTest : JsBasicBoxTest("jsCode/") abstract class AbstractLabelTest : JsBasicBoxTest("labels/") abstract class AbstractMultiModuleTest : JsBasicBoxTest("multiModule/") -abstract class AbstractInlineMultiModuleTest : JsBasicBoxTest("inlineMultiModule/") - abstract class AbstractReservedWordTest : JsBasicBoxTest("reservedWords/") abstract class AbstractSecondaryConstructorTest : JsBasicBoxTest("secondaryConstructors/") diff --git a/js/js.translator/testData/inlineEvaluationOrder/_commonFiles/utils.kt b/js/js.translator/testData/box/inlineEvaluationOrder/_common.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/_commonFiles/utils.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/_common.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfCall.kt b/js/js.translator/testData/box/inlineEvaluationOrder/argumentOfCall.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfCall.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/argumentOfCall.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfCallMultipleInlineCalls.kt b/js/js.translator/testData/box/inlineEvaluationOrder/argumentOfCallMultipleInlineCalls.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfCallMultipleInlineCalls.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/argumentOfCallMultipleInlineCalls.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfInlineCall.kt b/js/js.translator/testData/box/inlineEvaluationOrder/argumentOfInlineCall.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfInlineCall.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/argumentOfInlineCall.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfNew.kt b/js/js.translator/testData/box/inlineEvaluationOrder/argumentOfNew.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/argumentOfNew.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/argumentOfNew.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccess1.kt b/js/js.translator/testData/box/inlineEvaluationOrder/arrayAccess1.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccess1.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/arrayAccess1.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccess2.kt b/js/js.translator/testData/box/inlineEvaluationOrder/arrayAccess2.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccess2.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/arrayAccess2.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccess3.kt b/js/js.translator/testData/box/inlineEvaluationOrder/arrayAccess3.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccess3.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/arrayAccess3.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccessLhsDecomposed.kt b/js/js.translator/testData/box/inlineEvaluationOrder/arrayAccessLhsDecomposed.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/arrayAccessLhsDecomposed.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/arrayAccessLhsDecomposed.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/arrayLiteral.kt b/js/js.translator/testData/box/inlineEvaluationOrder/arrayLiteral.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/arrayLiteral.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/arrayLiteral.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/arrayLiteralMultipleInlineCalls.kt b/js/js.translator/testData/box/inlineEvaluationOrder/arrayLiteralMultipleInlineCalls.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/arrayLiteralMultipleInlineCalls.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/arrayLiteralMultipleInlineCalls.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/arrayLiteralNested.kt b/js/js.translator/testData/box/inlineEvaluationOrder/arrayLiteralNested.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/arrayLiteralNested.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/arrayLiteralNested.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/assignment.kt b/js/js.translator/testData/box/inlineEvaluationOrder/assignment.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/assignment.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/assignment.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/binaryOperator.kt b/js/js.translator/testData/box/inlineEvaluationOrder/binaryOperator.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/binaryOperator.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/binaryOperator.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/binaryOperatorMultipleInlineCalls.kt b/js/js.translator/testData/box/inlineEvaluationOrder/binaryOperatorMultipleInlineCalls.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/binaryOperatorMultipleInlineCalls.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/binaryOperatorMultipleInlineCalls.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/callQualifier.kt b/js/js.translator/testData/box/inlineEvaluationOrder/callQualifier.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/callQualifier.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/callQualifier.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/callQualifierComplex.kt b/js/js.translator/testData/box/inlineEvaluationOrder/callQualifierComplex.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/callQualifierComplex.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/callQualifierComplex.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/conditional.kt b/js/js.translator/testData/box/inlineEvaluationOrder/conditional.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/conditional.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/conditional.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/conditionalElvis.kt b/js/js.translator/testData/box/inlineEvaluationOrder/conditionalElvis.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/conditionalElvis.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/conditionalElvis.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/conditionalNested.kt b/js/js.translator/testData/box/inlineEvaluationOrder/conditionalNested.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/conditionalNested.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/conditionalNested.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/conditionalTestExpression.kt b/js/js.translator/testData/box/inlineEvaluationOrder/conditionalTestExpression.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/conditionalTestExpression.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/conditionalTestExpression.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/conditionalTestExpressionElvis.kt b/js/js.translator/testData/box/inlineEvaluationOrder/conditionalTestExpressionElvis.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/conditionalTestExpressionElvis.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/conditionalTestExpressionElvis.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/continueInExtractedDoWhile.kt b/js/js.translator/testData/box/inlineEvaluationOrder/continueInExtractedDoWhile.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/continueInExtractedDoWhile.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/continueInExtractedDoWhile.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/doWhile.kt b/js/js.translator/testData/box/inlineEvaluationOrder/doWhile.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/doWhile.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/doWhile.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/doWhileComplex.kt b/js/js.translator/testData/box/inlineEvaluationOrder/doWhileComplex.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/doWhileComplex.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/doWhileComplex.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/for.kt b/js/js.translator/testData/box/inlineEvaluationOrder/for.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/for.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/for.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/if.kt b/js/js.translator/testData/box/inlineEvaluationOrder/if.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/if.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/if.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/inlineFunctionAsParameterOfQualifiedCall.kt b/js/js.translator/testData/box/inlineEvaluationOrder/inlineFunctionAsParameterOfQualifiedCall.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/inlineFunctionAsParameterOfQualifiedCall.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/inlineFunctionAsParameterOfQualifiedCall.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/lambdaPropertyExtracted.kt b/js/js.translator/testData/box/inlineEvaluationOrder/lambdaPropertyExtracted.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/lambdaPropertyExtracted.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/lambdaPropertyExtracted.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/lambdaWithClosure.kt b/js/js.translator/testData/box/inlineEvaluationOrder/lambdaWithClosure.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/lambdaWithClosure.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/lambdaWithClosure.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/logicalAnd.kt b/js/js.translator/testData/box/inlineEvaluationOrder/logicalAnd.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/logicalAnd.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/logicalAnd.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/logicalAndOrMultipleInlineCalls.kt b/js/js.translator/testData/box/inlineEvaluationOrder/logicalAndOrMultipleInlineCalls.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/logicalAndOrMultipleInlineCalls.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/logicalAndOrMultipleInlineCalls.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/logicalOr.kt b/js/js.translator/testData/box/inlineEvaluationOrder/logicalOr.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/logicalOr.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/logicalOr.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/methodCallQualifierWithSideEffect.kt b/js/js.translator/testData/box/inlineEvaluationOrder/methodCallQualifierWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/methodCallQualifierWithSideEffect.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/methodCallQualifierWithSideEffect.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/methodDecomposedWithBind.kt b/js/js.translator/testData/box/inlineEvaluationOrder/methodDecomposedWithBind.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/methodDecomposedWithBind.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/methodDecomposedWithBind.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/methodInlineCallQualifierWithSideEffect.kt b/js/js.translator/testData/box/inlineEvaluationOrder/methodInlineCallQualifierWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/methodInlineCallQualifierWithSideEffect.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/methodInlineCallQualifierWithSideEffect.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/multiDeclaration.kt b/js/js.translator/testData/box/inlineEvaluationOrder/multiDeclaration.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/multiDeclaration.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/multiDeclaration.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/multiDeclarationComplex.kt b/js/js.translator/testData/box/inlineEvaluationOrder/multiDeclarationComplex.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/multiDeclarationComplex.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/multiDeclarationComplex.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/nestedContinueInExtractedDoWhile.kt b/js/js.translator/testData/box/inlineEvaluationOrder/nestedContinueInExtractedDoWhile.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/nestedContinueInExtractedDoWhile.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/nestedContinueInExtractedDoWhile.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/nestedInlineCall.kt b/js/js.translator/testData/box/inlineEvaluationOrder/nestedInlineCall.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/nestedInlineCall.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/nestedInlineCall.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/propertiesInitializationOrder.kt b/js/js.translator/testData/box/inlineEvaluationOrder/propertiesInitializationOrder.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/propertiesInitializationOrder.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/propertiesInitializationOrder.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/propertiesInitializationOrderSimple.kt b/js/js.translator/testData/box/inlineEvaluationOrder/propertiesInitializationOrderSimple.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/propertiesInitializationOrderSimple.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/propertiesInitializationOrderSimple.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/propertyAccessAfterModification.kt b/js/js.translator/testData/box/inlineEvaluationOrder/propertyAccessAfterModification.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/propertyAccessAfterModification.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/propertyAccessAfterModification.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/propertyAccessAndInitializer.kt b/js/js.translator/testData/box/inlineEvaluationOrder/propertyAccessAndInitializer.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/propertyAccessAndInitializer.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/propertyAccessAndInitializer.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/propertyAccessWithSideEffect.kt b/js/js.translator/testData/box/inlineEvaluationOrder/propertyAccessWithSideEffect.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/propertyAccessWithSideEffect.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/propertyAccessWithSideEffect.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/propertyWithSideEffectExtracted.kt b/js/js.translator/testData/box/inlineEvaluationOrder/propertyWithSideEffectExtracted.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/propertyWithSideEffectExtracted.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/propertyWithSideEffectExtracted.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/propertyWithSideEffectPassedToInlineFunction.kt b/js/js.translator/testData/box/inlineEvaluationOrder/propertyWithSideEffectPassedToInlineFunction.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/propertyWithSideEffectPassedToInlineFunction.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/propertyWithSideEffectPassedToInlineFunction.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/ternaryConditional.kt b/js/js.translator/testData/box/inlineEvaluationOrder/ternaryConditional.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/ternaryConditional.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/ternaryConditional.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/while.kt b/js/js.translator/testData/box/inlineEvaluationOrder/while.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/while.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/while.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/whileComplex.kt b/js/js.translator/testData/box/inlineEvaluationOrder/whileComplex.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/whileComplex.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/whileComplex.kt diff --git a/js/js.translator/testData/inlineEvaluationOrder/cases/whileConditionExtracted.kt b/js/js.translator/testData/box/inlineEvaluationOrder/whileConditionExtracted.kt similarity index 100% rename from js/js.translator/testData/inlineEvaluationOrder/cases/whileConditionExtracted.kt rename to js/js.translator/testData/box/inlineEvaluationOrder/whileConditionExtracted.kt diff --git a/js/js.translator/testData/inlineMultiFile/_commonFiles/core.kt b/js/js.translator/testData/box/inlineMultiFile/_common.kt similarity index 100% rename from js/js.translator/testData/inlineMultiFile/_commonFiles/core.kt rename to js/js.translator/testData/box/inlineMultiFile/_common.kt diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSite/anonymousObjectOnCallSite.1.kt b/js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnCallSite.kt similarity index 76% rename from js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSite/anonymousObjectOnCallSite.1.kt rename to js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnCallSite.kt index f86d886a47b..c11a218ff9e 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSite/anonymousObjectOnCallSite.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnCallSite.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnCallSite.1.kt */ +// FILE: foo.kt package foo import test.* @@ -33,3 +34,18 @@ fun box() : String { return "OK" } + +// FILE: test.kt +package test + +abstract class A { + abstract fun getO() : R + + abstract fun getK() : R +} + + +inline fun doWork(job: ()-> R) : R { + return job() +} + diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSiteSuperParams/anonymousObjectOnCallSiteSuperParams.1.kt b/js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnCallSiteSuperParams.kt similarity index 74% rename from js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSiteSuperParams/anonymousObjectOnCallSiteSuperParams.1.kt rename to js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnCallSiteSuperParams.kt index 8212c05d56c..f612c6060a7 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSiteSuperParams/anonymousObjectOnCallSiteSuperParams.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnCallSiteSuperParams.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnCallSiteSuperParams.1.kt */ +// FILE: foo.kt package foo import test.* @@ -29,3 +30,17 @@ fun box() : String { return "OK" } + +// FILE: test.kt +package test + +abstract class A(val param: R) { + abstract fun getO() : R + + abstract fun getK() : R +} + + +inline fun doWork(job: ()-> R) : R { + return job() +} diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.2.kt b/js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnDeclarationSite.kt similarity index 60% rename from js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.2.kt rename to js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnDeclarationSite.kt index 96766d9b970..3faeeb4591d 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.2.kt +++ b/js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnDeclarationSite.kt @@ -1,9 +1,43 @@ /* * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.2.kt + * Found at: compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.1.kt */ +// FILE: foo.kt +package foo +import test.* + +fun test1(): String { + val o = "O" + + val result = doWork ({o}, {"K"}, "GOOD") + + return result.getO() + result.getK() + result.getParam() +} + +fun test2() : String { + //same names as in object + val o1 = "O" + val k1 = "K" + + val result = doWorkInConstructor ({o1}, {k1}, "GOOD") + + return result.getO() + result.getK() + result.getParam() +} + +fun box() : String { + val result1 = test1(); + if (result1 != "OKGOOD") return "fail1 $result1" + + val result2 = test2(); + if (result2 != "OKGOOD") return "fail2 $result2" + + return "OK" +} + + +// FILE: test.kt package test diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.2.kt b/js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnDeclarationSiteSuperParams.kt similarity index 59% rename from js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.2.kt rename to js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnDeclarationSiteSuperParams.kt index 14011d45ef9..86f0768dcf1 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.2.kt +++ b/js/js.translator/testData/box/inlineMultiFile/anonymousObjectOnDeclarationSiteSuperParams.kt @@ -3,6 +3,41 @@ * Found at: compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.1.kt */ +// FILE: foo.kt +package foo + +import test.* + +fun test1(): String { + val o = "O" + + val result = doWork ({o}, {"K"}, "11") + + return result.getO() + result.getK() + result.param +} + +fun test2() : String { + //same names as in object + val o1 = "O" + val k1 = "K" + val param = "11" + val result = doWorkInConstructor ({o1}, {k1}, {param}) + + return result.getO() + result.getK() + result.param +} + +fun box() : String { + val result1 = test1(); + if (result1 != "OK11") return "fail1 $result1" + + val result2 = test2(); + if (result2 != "OK11") return "fail2 $result2" + + return "OK" +} + + +// FILE: test.kt package test diff --git a/js/js.translator/testData/inlineMultiFile/cases/builders/builders.1.kt b/js/js.translator/testData/box/inlineMultiFile/builders.kt similarity index 67% rename from js/js.translator/testData/inlineMultiFile/cases/builders/builders.1.kt rename to js/js.translator/testData/box/inlineMultiFile/builders.kt index f02f07edf07..01392eea669 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/builders/builders.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/builders.kt @@ -3,6 +3,8 @@ * Found at: compiler/testData/codegen/boxInline/builders/builders.1.kt */ + +// FILE: foo.kt package foo fun testAllInline() : String { @@ -175,4 +177,115 @@ fun box(): String { if (expected != testBodyHtmlNoInline()) return "fail 3: ${testBodyHtmlNoInline()}\nbut expected\n${expected} " return "OK" +} + + +// FILE: bar.kt +package foo + +import java.util.ArrayList +import java.util.HashMap + +abstract class Element { + abstract fun render(builder: StringBuilder, indent: String) + + override fun toString(): String { + val builder = StringBuilder() + render(builder, "") + return builder.toString() + } +} + +class TextElement(val text: String) : Element() { + override fun render(builder: StringBuilder, indent: String) { + builder.append("$indent$text\n") + } +} + +abstract class Tag(val name: String) : Element() { + val children = ArrayList() + val attributes = HashMap() + + inline protected fun initTag(tag: T, init: T.() -> Unit): T { + tag.init() + children.add(tag) + return tag + } + + override fun render(builder: StringBuilder, indent: String) { + builder.append("$indent<$name${renderAttributes()}>\n") + for (c in children) { + c.render(builder, indent + " ") + } + builder.append("$indent\n") + } + + private fun renderAttributes(): String? { + val builder = StringBuilder() + for (a in attributes.keys) { + builder.append(" $a=\"${attributes[a]}\"") + } + return builder.toString() + } +} + +abstract class TagWithText(name: String) : Tag(name) { + operator fun String.unaryPlus() { + children.add(TextElement(this)) + } +} + +class HTML() : TagWithText("html") { + inline fun head(init: Head.() -> Unit) = initTag(Head(), init) + + inline fun body(init: Body.() -> Unit) = initTag(Body(), init) + + fun bodyNoInline(init: Body.() -> Unit) = initTag(Body(), init) +} + +class Head() : TagWithText("head") { + inline fun title(init: Title.() -> Unit) = initTag(Title(), init) +} + +class Title() : TagWithText("title") + +abstract class BodyTag(name: String) : TagWithText(name) { + inline fun b(init: B.() -> Unit) = initTag(B(), init) + inline fun p(init: P.() -> Unit) = initTag(P(), init) + inline fun pNoInline(init: P.() -> Unit) = initTag(P(), init) + inline fun h1(init: H1.() -> Unit) = initTag(H1(), init) + inline fun ul(init: UL.() -> Unit) = initTag(UL(), init) + inline fun a(href: String, init: A.() -> Unit) { + val a = initTag(A(), init) + a.href = href + } +} + +class Body() : BodyTag("body") +class UL() : BodyTag("ul") { + inline fun li(init: LI.() -> Unit) = initTag(LI(), init) +} + +class B() : BodyTag("b") +class LI() : BodyTag("li") +class P() : BodyTag("p") +class H1() : BodyTag("h1") +class A() : BodyTag("a") { + public var href: String + get() = attributes["href"]!! + set(value) { + attributes["href"] = value + } +} + +inline fun html(init: HTML.() -> Unit): HTML { + val html = HTML() + html.init() + return html +} + +fun htmlNoInline(init: HTML.() -> Unit): HTML { + val html = HTML() + html.init() + return html } \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.1.kt b/js/js.translator/testData/box/inlineMultiFile/buildersAndLambdaCapturing.kt similarity index 69% rename from js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.1.kt rename to js/js.translator/testData/box/inlineMultiFile/buildersAndLambdaCapturing.kt index 1d8837d1925..214242c0c4d 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/buildersAndLambdaCapturing.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/builders/buildersAndLambdaCapturing.1.kt */ +// FILE: foo.kt package foo @@ -180,4 +181,115 @@ fun box(): String { if (expected != testBodyHtmlNoInline({captured})) return "fail 6: ${testBodyHtmlNoInline({captured})}\nbut expected\n${expected} " return "OK" +} + + +// FILE: bar.kt +package foo + +import java.util.ArrayList +import java.util.HashMap + +abstract class Element { + abstract fun render(builder: StringBuilder, indent: String) + + override fun toString(): String { + val builder = StringBuilder() + render(builder, "") + return builder.toString() + } +} + +class TextElement(val text: String) : Element() { + override fun render(builder: StringBuilder, indent: String) { + builder.append("$indent$text\n") + } +} + +abstract class Tag(val name: String) : Element() { + val children = ArrayList() + val attributes = HashMap() + + inline protected fun initTag(tag: T, init: T.() -> Unit): T { + tag.init() + children.add(tag) + return tag + } + + override fun render(builder: StringBuilder, indent: String) { + builder.append("$indent<$name${renderAttributes()}>\n") + for (c in children) { + c.render(builder, indent + " ") + } + builder.append("$indent\n") + } + + private fun renderAttributes(): String? { + val builder = StringBuilder() + for (a in attributes.keys) { + builder.append(" $a=\"${attributes[a]}\"") + } + return builder.toString() + } +} + +abstract class TagWithText(name: String) : Tag(name) { + operator fun String.unaryPlus() { + children.add(TextElement(this)) + } +} + +class HTML() : TagWithText("html") { + inline fun head(init: Head.() -> Unit) = initTag(Head(), init) + + inline fun body(init: Body.() -> Unit) = initTag(Body(), init) + + fun bodyNoInline(init: Body.() -> Unit) = initTag(Body(), init) +} + +class Head() : TagWithText("head") { + inline fun title(init: Title.() -> Unit) = initTag(Title(), init) +} + +class Title() : TagWithText("title") + +abstract class BodyTag(name: String) : TagWithText(name) { + inline fun b(init: B.() -> Unit) = initTag(B(), init) + inline fun p(init: P.() -> Unit) = initTag(P(), init) + fun pNoInline(init: P.() -> Unit) = initTag(P(), init) + inline fun h1(init: H1.() -> Unit) = initTag(H1(), init) + inline fun ul(init: UL.() -> Unit) = initTag(UL(), init) + inline fun a(href: String, init: A.() -> Unit) { + val a = initTag(A(), init) + a.href = href + } +} + +class Body() : BodyTag("body") +class UL() : BodyTag("ul") { + inline fun li(init: LI.() -> Unit) = initTag(LI(), init) +} + +class B() : BodyTag("b") +class LI() : BodyTag("li") +class P() : BodyTag("p") +class H1() : BodyTag("h1") +class A() : BodyTag("a") { + public var href: String + get() = attributes["href"]!! + set(value) { + attributes["href"] = value + } +} + +inline fun html(init: HTML.() -> Unit): HTML { + val html = HTML() + html.init() + return html +} + +fun htmlNoInline(init: HTML.() -> Unit): HTML { + val html = HTML() + html.init() + return html } \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.1.kt b/js/js.translator/testData/box/inlineMultiFile/captureInlinable.kt similarity index 64% rename from js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.1.kt rename to js/js.translator/testData/box/inlineMultiFile/captureInlinable.kt index a5f4a0d3391..3555df66109 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/captureInlinable.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/capture/captureInlinable.1.kt */ +// FILE: foo.kt package foo import test.* @@ -15,4 +16,18 @@ fun box(): String { if (result2 != 12) return "test2: ${result2}" return "OK" -} \ No newline at end of file +} + + +// FILE: test.kt +package test + + +inline fun doWork(crossinline job: ()-> R) : R { + return notInline({job()}) +} + +fun notInline(job: ()-> R) : R { + return job() +} + diff --git a/js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.1.kt b/js/js.translator/testData/box/inlineMultiFile/captureInlinableAndOther.kt similarity index 62% rename from js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.1.kt rename to js/js.translator/testData/box/inlineMultiFile/captureInlinableAndOther.kt index ec0fa2186b3..0f39d1ca8f7 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/captureInlinableAndOther.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/capture/captureInlinableAndOther.1.kt */ +// FILE: foo.kt package foo import test.* @@ -15,4 +16,18 @@ fun box(): String { if (result2 != 12) return "test2: ${result2}" return "OK" -} \ No newline at end of file +} + + +// FILE: test.kt +package test + + +inline fun doWork(crossinline job: ()-> R) : R { + val k = 10; + return notInline({k; job()}) +} + +fun notInline(job: ()-> R) : R { + return job() +} diff --git a/js/js.translator/testData/inlineMultiFile/cases/captureThisAndReceiver/captureThisAndReceiver.1.kt b/js/js.translator/testData/box/inlineMultiFile/captureThisAndReceiver.kt similarity index 80% rename from js/js.translator/testData/inlineMultiFile/cases/captureThisAndReceiver/captureThisAndReceiver.1.kt rename to js/js.translator/testData/box/inlineMultiFile/captureThisAndReceiver.kt index 226cfc4082f..e6b80ffe4f8 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/captureThisAndReceiver/captureThisAndReceiver.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/captureThisAndReceiver.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/capture/captureThisAndReceiver.1.kt */ +// FILE: foo.kt package foo fun test1() : Int { @@ -32,4 +33,15 @@ fun box(): String { if (test2() != 11) return "test2: ${test2()}" return "OK" -} \ No newline at end of file +} + + +// FILE: bar.kt +package foo + +class My(val value: Int) + +inline fun T.perform(job: (T)-> R) : R { + return job(this) +} + diff --git a/js/js.translator/testData/inlineMultiFile/cases/closureChain/closureChain.1.kt b/js/js.translator/testData/box/inlineMultiFile/closureChain.kt similarity index 60% rename from js/js.translator/testData/inlineMultiFile/cases/closureChain/closureChain.1.kt rename to js/js.translator/testData/box/inlineMultiFile/closureChain.kt index ff12c291519..967be847faa 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/closureChain/closureChain.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/closureChain.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/complex/closureChain.1.kt */ +// FILE: foo.kt package foo fun test1(): Int { @@ -14,4 +15,15 @@ fun box(): String { if (test1() != 2) return "test1: ${test1()}" return "OK" -} \ No newline at end of file +} + + +// FILE: bar.kt +package foo + +class Inline() { + + inline fun foo(closure1 : (l: Int) -> String, param: Int, closure2: String.() -> Int) : Int { + return closure1(param).closure2() + } +} diff --git a/js/js.translator/testData/inlineMultiFile/cases/defaultMethod/defaultMethod.1.kt b/js/js.translator/testData/box/inlineMultiFile/defaultMethod.kt similarity index 69% rename from js/js.translator/testData/inlineMultiFile/cases/defaultMethod/defaultMethod.1.kt rename to js/js.translator/testData/box/inlineMultiFile/defaultMethod.kt index 1a16cf10345..85357a23d72 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/defaultMethod/defaultMethod.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/defaultMethod.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/defaultValues/defaultMethod.1.kt */ +// FILE: foo.kt package foo import test.* @@ -26,4 +27,16 @@ fun box(): String { if (result != "OOKK") return "fail2: ${result}" return "OK" -} \ No newline at end of file +} + + +// FILE: test.kt +package test + +inline fun simpleFun(arg: String = "O", lambda: (String) -> T): T { + return lambda(arg) +} + +inline fun simpleFunR(lambda: (String) -> T, arg: String = "O"): T { + return lambda(arg) +} diff --git a/js/js.translator/testData/inlineMultiFile/cases/generics/generics.1.kt b/js/js.translator/testData/box/inlineMultiFile/generics.kt similarity index 68% rename from js/js.translator/testData/inlineMultiFile/cases/generics/generics.1.kt rename to js/js.translator/testData/box/inlineMultiFile/generics.kt index a1a1fbf9e37..d248698297e 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/generics/generics.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/generics.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/capture/generics.1.kt */ +// FILE: foo.kt package foo import test.* @@ -21,4 +22,16 @@ fun box(): String { if (result != "OK1111") return "fail1: ${result}" return "OK" +} + + +// FILE: test.kt +package test + +inline fun mfun(arg: T, f: (T) -> R) : R { + return f(arg) +} + +inline fun doSmth(a: T): String { + return a.toString() } \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/inlineInDefaultParameter/inlineInDefaultParameter.1.kt b/js/js.translator/testData/box/inlineMultiFile/inlineInDefaultParameter.kt similarity index 87% rename from js/js.translator/testData/inlineMultiFile/cases/inlineInDefaultParameter/inlineInDefaultParameter.1.kt rename to js/js.translator/testData/box/inlineMultiFile/inlineInDefaultParameter.kt index cc660bfa229..d9b4ad30622 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/inlineInDefaultParameter/inlineInDefaultParameter.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/inlineInDefaultParameter.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/defaultValues/inlineInDefaultParameter.1.kt */ +// FILE: foo.kt package foo import test.* @@ -29,5 +30,13 @@ fun box(): String { result = testCompilationInline("OKOK") if (result != "OKOK") return "fail4: ${result}" + return "OK" +} + + +// FILE: test.kt +package test + +inline fun getStringInline(): String { return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/inlineMultiFileSimple/inlineMultiFileSimple.2.kt b/js/js.translator/testData/box/inlineMultiFile/inlineMultiFileSimple.kt similarity index 56% rename from js/js.translator/testData/inlineMultiFile/cases/inlineMultiFileSimple/inlineMultiFileSimple.2.kt rename to js/js.translator/testData/box/inlineMultiFile/inlineMultiFileSimple.kt index f8d08c07031..0a3356b3d25 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/inlineMultiFileSimple/inlineMultiFileSimple.2.kt +++ b/js/js.translator/testData/box/inlineMultiFile/inlineMultiFileSimple.kt @@ -1,3 +1,12 @@ +// FILE: a.kt +package foo + +inline fun sum(a: Int, b: Int): Int { + return a + b +} + + +// FILE: b.kt package foo // CHECK_NOT_CALLED: sum diff --git a/js/js.translator/testData/inlineMultiFile/cases/lambdaCloning/lambdaCloning.1.kt b/js/js.translator/testData/box/inlineMultiFile/lambdaCloning.kt similarity index 69% rename from js/js.translator/testData/inlineMultiFile/cases/lambdaCloning/lambdaCloning.1.kt rename to js/js.translator/testData/box/inlineMultiFile/lambdaCloning.kt index 47e25b318d2..a761dfce52c 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/lambdaCloning/lambdaCloning.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/lambdaCloning.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/lambdaCloning.1.kt */ +// FILE: foo.kt package foo import test.* @@ -23,4 +24,16 @@ fun box(): String { if (result != "11") return "fail2: ${result}" return "OK" +} + + +// FILE: test.kt +package test + +inline fun doSmth(a: T) : String { + return {a.toString()}() +} + +inline fun doSmth2(a: T) : String { + return {{a.toString()}()}() } \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambda2/lambdaInLambda2.1.kt b/js/js.translator/testData/box/inlineMultiFile/lambdaInLambda2.kt similarity index 75% rename from js/js.translator/testData/inlineMultiFile/cases/lambdaInLambda2/lambdaInLambda2.1.kt rename to js/js.translator/testData/box/inlineMultiFile/lambdaInLambda2.kt index b4e2980d313..b6d557eb51b 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambda2/lambdaInLambda2.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/lambdaInLambda2.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/lambdaInLambda2.1.kt */ +// FILE: foo.kt package foo import test.* @@ -25,4 +26,16 @@ fun box(): String { if (test1("nostart") != "fail") return "fail2" return "OK" +} + + +// FILE: test.kt +package test + +inline fun mfun(f: () -> R) { + f() +} + +fun concat(suffix: String, l: (s: String) -> Unit) { + l(suffix) } \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.1.kt b/js/js.translator/testData/box/inlineMultiFile/lambdaInLambdaNoInline.kt similarity index 84% rename from js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.1.kt rename to js/js.translator/testData/box/inlineMultiFile/lambdaInLambdaNoInline.kt index a681ff056a1..01145624ac9 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/lambdaInLambdaNoInline.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.1.kt */ +// FILE: foo.kt package foo import test.* @@ -57,4 +58,20 @@ fun box(): String { if (test22({"start"}) != "start") return "fail5: ${test22({"start"})}" return "OK" -} \ No newline at end of file +} + + +// FILE: test.kt +package test + +fun concat(suffix: String, l: (s: String) -> Unit) { + l(suffix) +} + +fun noInlineFun(arg: T, f: (T) -> Unit) { + f(arg) +} + +inline fun doSmth(a: String): String { + return a.toString() +} diff --git a/js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.1.kt b/js/js.translator/testData/box/inlineMultiFile/regeneratedLambdaName.kt similarity index 79% rename from js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.1.kt rename to js/js.translator/testData/box/inlineMultiFile/regeneratedLambdaName.kt index ec992aa3bad..cbda7d63f9e 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/regeneratedLambdaName.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.1.kt */ +// FILE: foo.kt package foo import test.* @@ -27,4 +28,13 @@ fun box(): String { if (result2 != 2) return "fail2: ${result2}" return "OK" -} \ No newline at end of file +} + + +// FILE: test.kt +package test + + +inline fun call(crossinline f: () -> R) : R { + return {f()} () +} diff --git a/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.1.kt b/js/js.translator/testData/box/inlineMultiFile/sameCaptured.kt similarity index 69% rename from js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.1.kt rename to js/js.translator/testData/box/inlineMultiFile/sameCaptured.kt index 4e7f4ab938b..4d18710ae5c 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/sameCaptured.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.1.kt */ +// FILE: foo.kt package foo import test.* @@ -26,4 +27,23 @@ fun box(): String { if (testSameCaptured{result += 1111} != "OK") return "test2 : ${testSameCaptured{result = 1111}}" return "OK" -} \ No newline at end of file +} + + +// FILE: test.kt +package test + + +inline fun doWork(crossinline job: ()-> R) : R { + val k = 10; + return notInline({k; job()}) +} + +inline fun doWork(crossinline job: ()-> R, crossinline job2: () -> R) : R { + val k = 10; + return notInline({k; job(); job2()}) +} + +fun notInline(job: ()-> R) : R { + return job() +} diff --git a/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInClass/simpleCapturingInClass.1.kt b/js/js.translator/testData/box/inlineMultiFile/simpleCapturingInClass.kt similarity index 89% rename from js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInClass/simpleCapturingInClass.1.kt rename to js/js.translator/testData/box/inlineMultiFile/simpleCapturingInClass.kt index 0c2b1484cc0..1b6719ff720 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInClass/simpleCapturingInClass.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/simpleCapturingInClass.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/capture/simpleCapturingInClass.1.kt */ +// FILE: a.kt package foo fun testAll(): String { @@ -74,4 +75,16 @@ fun box(): String { if (testAllWithCapturedVar() != "112.513.514152122.523.52425H262728.5") return "testAllWithCapturedVar: ${testAllWithCapturedVar()}" if (testAllWithCapturedValAndVar() != "112.513.514152122.523.52425H262728.5") return "testAllWithCapturedVal: ${testAllWithCapturedValAndVar()}" return "OK" +} + + +// FILE: b.kt +package foo + +class InlineAll { + + inline fun inline(s: (Int, Double, Double, String, Long) -> String, + a1: Int, a2: Double, a3: Double, a4: String, a5: Long): String { + return s(a1, a2, a3, a4, a5) + } } \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInPackage/simpleCapturingInPackage.1.kt b/js/js.translator/testData/box/inlineMultiFile/simpleCapturingInPackage.kt similarity index 90% rename from js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInPackage/simpleCapturingInPackage.1.kt rename to js/js.translator/testData/box/inlineMultiFile/simpleCapturingInPackage.kt index f3edd01ce79..ad1b58124f8 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInPackage/simpleCapturingInPackage.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/simpleCapturingInPackage.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/capture/simpleCapturingInPackage.1.kt */ +// FILE: a.kt package foo fun testAll(): String { @@ -66,4 +67,13 @@ fun box(): String { if (testAllWithCapturedVar() != "112.513.514152122.523.52425H262728.5") return "testAllWithCapturedVar: ${testAllWithCapturedVar()}" if (testAllWithCapturedValAndVar() != "112.513.514152122.523.52425H262728.5") return "testAllWithCapturedVal: ${testAllWithCapturedValAndVar()}" return "OK" -} \ No newline at end of file +} + + +// FILE: b.kt +package foo + +inline fun inline(s: (Int, Double, Double, String, Long) -> String, + a1: Int, a2: Double, a3: Double, a4: String, a5: Long): String { + return s(a1, a2, a3, a4, a5) +} diff --git a/js/js.translator/testData/inlineMultiFile/cases/simpleDefaultMethod/simpleDefaultMethod.1.kt b/js/js.translator/testData/box/inlineMultiFile/simpleDefaultMethod.kt similarity index 73% rename from js/js.translator/testData/inlineMultiFile/cases/simpleDefaultMethod/simpleDefaultMethod.1.kt rename to js/js.translator/testData/box/inlineMultiFile/simpleDefaultMethod.kt index 5cc579821ee..12987920829 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/simpleDefaultMethod/simpleDefaultMethod.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/simpleDefaultMethod.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/defaultValues/simpleDefaultMethod.1.kt */ +// FILE: foo.kt package foo import test.* @@ -26,4 +27,17 @@ fun box(): String { if (result != "OK") return "fail2: ${result}" return "OK" -} \ No newline at end of file +} + + +// FILE: test.kt +package test + +inline fun emptyFun(arg: String = "O") { + +} + +inline fun simpleFun(arg: String = "O"): String { + val r = arg; + return r; +} diff --git a/js/js.translator/testData/inlineMultiFile/cases/trait/trait.1.kt b/js/js.translator/testData/box/inlineMultiFile/trait.kt similarity index 69% rename from js/js.translator/testData/inlineMultiFile/cases/trait/trait.1.kt rename to js/js.translator/testData/box/inlineMultiFile/trait.kt index 914b858b9df..836ccf4d648 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/trait/trait.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/trait.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/trait/trait.1.kt */ +// FILE: foo.kt package foo import test.* @@ -27,4 +28,25 @@ fun box(): String { if (testClassObject() != "classobject") return "test3: ${testClassObject()}" return "OK" +} + + +// FILE: test.kt +package test + +internal interface InlineTrait { + + public fun finalInline(s: () -> String): String { + return s() + } + + companion object { + public inline final fun finalInline(s: () -> String): String { + return s() + } + } +} + +class Z: InlineTrait { + } \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/tryCatch/tryCatch.1.kt b/js/js.translator/testData/box/inlineMultiFile/tryCatch.kt similarity index 82% rename from js/js.translator/testData/inlineMultiFile/cases/tryCatch/tryCatch.1.kt rename to js/js.translator/testData/box/inlineMultiFile/tryCatch.kt index e9e702deab2..82e91a9ae46 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/tryCatch/tryCatch.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/tryCatch.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/tryCatchFinally/tryCatch.1.kt */ +// FILE: a.kt package foo fun test1() : Int { @@ -57,4 +58,17 @@ fun box(): String { if (test2() != -2) return "test2: ${test2()}" return "OK" -} \ No newline at end of file +} + +// FILE: b.kt +package foo + +class My(val value: Int) + +inline fun T.perform(job: (T)-> R) : R { + return job(this) +} + +inline fun String.toInt2() : Int = parseInt(this) + +class RuntimeExceptionWithValue(val value: String) : RuntimeException() \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/tryCatch2/tryCatch2.1.kt b/js/js.translator/testData/box/inlineMultiFile/tryCatch2.kt similarity index 80% rename from js/js.translator/testData/inlineMultiFile/cases/tryCatch2/tryCatch2.1.kt rename to js/js.translator/testData/box/inlineMultiFile/tryCatch2.kt index e6dccaf21bd..134aafa4310 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/tryCatch2/tryCatch2.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/tryCatch2.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/tryCatchFinally/tryCatch2.1.kt */ +// FILE: a.kt package foo fun test1(): Int { @@ -111,4 +112,34 @@ fun box(): String { if (test33() != -3) return "test33: ${test33()}" return "OK" -} \ No newline at end of file +} + + +// FILE: b.kt +package foo + +class My(val value: Int) + +inline fun T.performWithFail(job: (T)-> R, failJob: (T) -> R): R { + try { + return job(this) + } catch (e: RuntimeExceptionWithValue) { + return failJob(this) + } +} + +inline fun T.performWithFail2(job: (T)-> R, failJob: (e: RuntimeExceptionWithValue, T) -> R): R { + try { + return job(this) + } catch (e: RuntimeExceptionWithValue) { + return failJob(e, this) + } +} + +@native object Number { + fun parseInt(str: String): Int = noImpl +} + +inline fun String.toInt2(): Int = parseInt(this) + +class RuntimeExceptionWithValue(val value: String = "") : RuntimeException() \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/tryCatchFinally/tryCatchFinally.1.kt b/js/js.translator/testData/box/inlineMultiFile/tryCatchFinally.kt similarity index 75% rename from js/js.translator/testData/inlineMultiFile/cases/tryCatchFinally/tryCatchFinally.1.kt rename to js/js.translator/testData/box/inlineMultiFile/tryCatchFinally.kt index bcf49352ae2..cf85138dabb 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/tryCatchFinally/tryCatchFinally.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/tryCatchFinally.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/tryCatchFinally/tryCatchFinally.1.kt */ +// FILE: a.kt package foo fun test1(): Int { @@ -77,4 +78,30 @@ fun box(): String { if (test3() != 113) return "test3: ${test3()}" return "OK" -} \ No newline at end of file +} + + +// FILE: b.kt +package foo + +class My(val value: Int) + +inline fun T.performWithFinally(job: (T)-> R, finallyFun: (T) -> R) : R { + try { + job(this) + } finally { + return finallyFun(this) + } +} + +inline fun T.performWithFailFinally(job: (T)-> R, failJob : (e: RuntimeException, T) -> R, finallyFun: (T) -> R) : R { + try { + job(this) + } catch (e: RuntimeException) { + failJob(e, this) + } finally { + return finallyFun(this) + } +} + +inline fun String.toInt2() : Int = parseInt(this) \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/use/use.2.kt b/js/js.translator/testData/box/inlineMultiFile/use.kt similarity index 61% rename from js/js.translator/testData/inlineMultiFile/cases/use/use.2.kt rename to js/js.translator/testData/box/inlineMultiFile/use.kt index 2af5e33df5d..61afe3a68ab 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/use/use.2.kt +++ b/js/js.translator/testData/box/inlineMultiFile/use.kt @@ -1,8 +1,35 @@ /* * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/complex/use.2.kt + * Found at: compiler/testData/codegen/boxInline/complex/use.1.kt */ +// FILE: foo.kt +package foo + +import test.* + +fun Data.test1(d: Data) : Int { + val input2 = Input(this) + val input = Input(this) + return input.use{ + val output = Output(d) + output.use{ + input.copyTo(output, 10) + } + } +} + + +fun box(): String { + + val result = Data().test1(Data()) + if (result != 100) return "test1: ${result}" + + return "OK" +} + + +// FILE: test.kt package test public class Data() @@ -40,7 +67,4 @@ public inline fun T.use(block: (T)-> R) : R { this.close() } } -} - - - +} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/with/with.1.kt b/js/js.translator/testData/box/inlineMultiFile/with.kt similarity index 58% rename from js/js.translator/testData/inlineMultiFile/cases/with/with.1.kt rename to js/js.translator/testData/box/inlineMultiFile/with.kt index 31db0e5e534..4a799a96b34 100644 --- a/js/js.translator/testData/inlineMultiFile/cases/with/with.1.kt +++ b/js/js.translator/testData/box/inlineMultiFile/with.kt @@ -3,6 +3,7 @@ * Found at: compiler/testData/codegen/boxInline/complex/with.1.kt */ +// FILE: foo.kt package foo import test.* @@ -47,3 +48,36 @@ fun box(): String { return "OK" } + + +// FILE: test.kt +package test + + +public class Data() + +public class Input(val d: Data) : Closeable { + public fun data() : Int = 100 +} +public class Output(val d: Data) : Closeable { + public fun doOutput(data: Int): Int = data +} + +public interface Closeable { + open public fun close() {} +} + +public inline fun use(block: ()-> R) : R { + return block() +} + +public fun useNoInline(block: ()-> R) : R { + return block() +} + + +public fun Input.copyTo(output: Output, size: Int): Int { + return output.doOutput(this.data()) +} + +public inline fun with2(receiver : T, crossinline body : T.() -> Unit) : Unit = {receiver.body()}() diff --git a/js/js.translator/testData/inlineMultiModule/cases/anotherModuleValInClosure.kt b/js/js.translator/testData/box/inlineMultiModule/anotherModuleValInClosure.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/anotherModuleValInClosure.kt rename to js/js.translator/testData/box/inlineMultiModule/anotherModuleValInClosure.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/callableReference.kt b/js/js.translator/testData/box/inlineMultiModule/callableReference.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/callableReference.kt rename to js/js.translator/testData/box/inlineMultiModule/callableReference.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/calledByFqName.kt b/js/js.translator/testData/box/inlineMultiModule/calledByFqName.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/calledByFqName.kt rename to js/js.translator/testData/box/inlineMultiModule/calledByFqName.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/extensionLambda.kt b/js/js.translator/testData/box/inlineMultiModule/extensionLambda.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/extensionLambda.kt rename to js/js.translator/testData/box/inlineMultiModule/extensionLambda.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/externalInlineCallDecomposed.kt b/js/js.translator/testData/box/inlineMultiModule/externalInlineCallDecomposed.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/externalInlineCallDecomposed.kt rename to js/js.translator/testData/box/inlineMultiModule/externalInlineCallDecomposed.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/externalInlineNewDecomposed.kt b/js/js.translator/testData/box/inlineMultiModule/externalInlineNewDecomposed.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/externalInlineNewDecomposed.kt rename to js/js.translator/testData/box/inlineMultiModule/externalInlineNewDecomposed.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/lambda.kt b/js/js.translator/testData/box/inlineMultiModule/lambda.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/lambda.kt rename to js/js.translator/testData/box/inlineMultiModule/lambda.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/lambdaCalledInObjectLiteral.kt b/js/js.translator/testData/box/inlineMultiModule/lambdaCalledInObjectLiteral.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/lambdaCalledInObjectLiteral.kt rename to js/js.translator/testData/box/inlineMultiModule/lambdaCalledInObjectLiteral.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/lambdaWithClosure.kt b/js/js.translator/testData/box/inlineMultiModule/lambdaWithClosure.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/lambdaWithClosure.kt rename to js/js.translator/testData/box/inlineMultiModule/lambdaWithClosure.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/localNameClash.kt b/js/js.translator/testData/box/inlineMultiModule/localNameClash.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/localNameClash.kt rename to js/js.translator/testData/box/inlineMultiModule/localNameClash.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/method.kt b/js/js.translator/testData/box/inlineMultiModule/method.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/method.kt rename to js/js.translator/testData/box/inlineMultiModule/method.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/parameterWithDefaultValue.kt b/js/js.translator/testData/box/inlineMultiModule/parameterWithDefaultValue.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/parameterWithDefaultValue.kt rename to js/js.translator/testData/box/inlineMultiModule/parameterWithDefaultValue.kt diff --git a/js/js.translator/testData/inlineMultiModule/cases/simple.kt b/js/js.translator/testData/box/inlineMultiModule/simple.kt similarity index 100% rename from js/js.translator/testData/inlineMultiModule/cases/simple.kt rename to js/js.translator/testData/box/inlineMultiModule/simple.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/inlineOrder.kt b/js/js.translator/testData/box/inlineSizeReduction/inlineOrder.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/inlineOrder.kt rename to js/js.translator/testData/box/inlineSizeReduction/inlineOrder.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/lastBreak.kt b/js/js.translator/testData/box/inlineSizeReduction/lastBreak.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/lastBreak.kt rename to js/js.translator/testData/box/inlineSizeReduction/lastBreak.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/noDuplicateVariableDeclaration.kt b/js/js.translator/testData/box/inlineSizeReduction/noDuplicateVariableDeclaration.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/noDuplicateVariableDeclaration.kt rename to js/js.translator/testData/box/inlineSizeReduction/noDuplicateVariableDeclaration.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/oneTopLevelReturn.kt b/js/js.translator/testData/box/inlineSizeReduction/oneTopLevelReturn.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/oneTopLevelReturn.kt rename to js/js.translator/testData/box/inlineSizeReduction/oneTopLevelReturn.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/propertyAssignment.kt b/js/js.translator/testData/box/inlineSizeReduction/propertyAssignment.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/propertyAssignment.kt rename to js/js.translator/testData/box/inlineSizeReduction/propertyAssignment.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/propertyReferenceDoesNotProduceSideEffect.kt b/js/js.translator/testData/box/inlineSizeReduction/propertyReferenceDoesNotProduceSideEffect.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/propertyReferenceDoesNotProduceSideEffect.kt rename to js/js.translator/testData/box/inlineSizeReduction/propertyReferenceDoesNotProduceSideEffect.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/returnInlineCall.kt b/js/js.translator/testData/box/inlineSizeReduction/returnInlineCall.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/returnInlineCall.kt rename to js/js.translator/testData/box/inlineSizeReduction/returnInlineCall.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/simpleReturnFunction.kt b/js/js.translator/testData/box/inlineSizeReduction/simpleReturnFunction.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/simpleReturnFunction.kt rename to js/js.translator/testData/box/inlineSizeReduction/simpleReturnFunction.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/ternaryConditional.kt b/js/js.translator/testData/box/inlineSizeReduction/ternaryConditional.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/ternaryConditional.kt rename to js/js.translator/testData/box/inlineSizeReduction/ternaryConditional.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/this.kt b/js/js.translator/testData/box/inlineSizeReduction/this.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/this.kt rename to js/js.translator/testData/box/inlineSizeReduction/this.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/valAssignment.kt b/js/js.translator/testData/box/inlineSizeReduction/valAssignment.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/valAssignment.kt rename to js/js.translator/testData/box/inlineSizeReduction/valAssignment.kt diff --git a/js/js.translator/testData/inlineSizeReduction/cases/valDeclaration.kt b/js/js.translator/testData/box/inlineSizeReduction/valDeclaration.kt similarity index 100% rename from js/js.translator/testData/inlineSizeReduction/cases/valDeclaration.kt rename to js/js.translator/testData/box/inlineSizeReduction/valDeclaration.kt diff --git a/js/js.translator/testData/inlineStdlib/cases/callNameClash.kt b/js/js.translator/testData/box/inlineStdlib/callNameClash.kt similarity index 100% rename from js/js.translator/testData/inlineStdlib/cases/callNameClash.kt rename to js/js.translator/testData/box/inlineStdlib/callNameClash.kt diff --git a/js/js.translator/testData/inlineStdlib/cases/callableRefToFunInCurrentModule.kt b/js/js.translator/testData/box/inlineStdlib/callableRefToFunInCurrentModule.kt similarity index 100% rename from js/js.translator/testData/inlineStdlib/cases/callableRefToFunInCurrentModule.kt rename to js/js.translator/testData/box/inlineStdlib/callableRefToFunInCurrentModule.kt diff --git a/js/js.translator/testData/inlineStdlib/cases/closure.kt b/js/js.translator/testData/box/inlineStdlib/closure.kt similarity index 100% rename from js/js.translator/testData/inlineStdlib/cases/closure.kt rename to js/js.translator/testData/box/inlineStdlib/closure.kt diff --git a/js/js.translator/testData/inlineStdlib/cases/closureInObjectLiteral.kt b/js/js.translator/testData/box/inlineStdlib/closureInObjectLiteral.kt similarity index 100% rename from js/js.translator/testData/inlineStdlib/cases/closureInObjectLiteral.kt rename to js/js.translator/testData/box/inlineStdlib/closureInObjectLiteral.kt diff --git a/js/js.translator/testData/inlineStdlib/cases/closureNested.kt b/js/js.translator/testData/box/inlineStdlib/closureNested.kt similarity index 100% rename from js/js.translator/testData/inlineStdlib/cases/closureNested.kt rename to js/js.translator/testData/box/inlineStdlib/closureNested.kt diff --git a/js/js.translator/testData/inlineStdlib/cases/localNamesClash.kt b/js/js.translator/testData/box/inlineStdlib/localNamesClash.kt similarity index 100% rename from js/js.translator/testData/inlineStdlib/cases/localNamesClash.kt rename to js/js.translator/testData/box/inlineStdlib/localNamesClash.kt diff --git a/js/js.translator/testData/inlineStdlib/cases/simple.kt b/js/js.translator/testData/box/inlineStdlib/simple.kt similarity index 100% rename from js/js.translator/testData/inlineStdlib/cases/simple.kt rename to js/js.translator/testData/box/inlineStdlib/simple.kt diff --git a/js/js.translator/testData/inlineStdlib/cases/thisInExtension.kt b/js/js.translator/testData/box/inlineStdlib/thisInExtension.kt similarity index 100% rename from js/js.translator/testData/inlineStdlib/cases/thisInExtension.kt rename to js/js.translator/testData/box/inlineStdlib/thisInExtension.kt diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSite/anonymousObjectOnCallSite.2.kt b/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSite/anonymousObjectOnCallSite.2.kt deleted file mode 100644 index 6d1a1876cca..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSite/anonymousObjectOnCallSite.2.kt +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnCallSite.2.kt - */ - -package test - -abstract class A { - abstract fun getO() : R - - abstract fun getK() : R -} - - -inline fun doWork(job: ()-> R) : R { - return job() -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSiteSuperParams/anonymousObjectOnCallSiteSuperParams.2.kt b/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSiteSuperParams/anonymousObjectOnCallSiteSuperParams.2.kt deleted file mode 100644 index 9a504f139b9..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnCallSiteSuperParams/anonymousObjectOnCallSiteSuperParams.2.kt +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnCallSiteSuperParams.2.kt - */ - -package test - -abstract class A(val param: R) { - abstract fun getO() : R - - abstract fun getK() : R -} - - -inline fun doWork(job: ()-> R) : R { - return job() -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.1.kt b/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.1.kt deleted file mode 100644 index 176a50729c5..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSite/anonymousObjectOnDeclarationSite.1.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSite.1.kt - */ - -package foo - -import test.* - -fun test1(): String { - val o = "O" - - val result = doWork ({o}, {"K"}, "GOOD") - - return result.getO() + result.getK() + result.getParam() -} - -fun test2() : String { - //same names as in object - val o1 = "O" - val k1 = "K" - - val result = doWorkInConstructor ({o1}, {k1}, "GOOD") - - return result.getO() + result.getK() + result.getParam() -} - -fun box() : String { - val result1 = test1(); - if (result1 != "OKGOOD") return "fail1 $result1" - - val result2 = test2(); - if (result2 != "OKGOOD") return "fail2 $result2" - - return "OK" -} - diff --git a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.1.kt b/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.1.kt deleted file mode 100644 index 3e32c1e1761..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/anonymousObjectOnDeclarationSiteSuperParams/anonymousObjectOnDeclarationSiteSuperParams.1.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/anonymousObject/anonymousObjectOnDeclarationSiteSuperParams.1.kt - */ - -package foo - -import test.* - -fun test1(): String { - val o = "O" - - val result = doWork ({o}, {"K"}, "11") - - return result.getO() + result.getK() + result.param -} - -fun test2() : String { - //same names as in object - val o1 = "O" - val k1 = "K" - val param = "11" - val result = doWorkInConstructor ({o1}, {k1}, {param}) - - return result.getO() + result.getK() + result.param -} - -fun box() : String { - val result1 = test1(); - if (result1 != "OK11") return "fail1 $result1" - - val result2 = test2(); - if (result2 != "OK11") return "fail2 $result2" - - return "OK" -} - diff --git a/js/js.translator/testData/inlineMultiFile/cases/builders/builders.2.kt b/js/js.translator/testData/inlineMultiFile/cases/builders/builders.2.kt deleted file mode 100644 index ddd9900d05b..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/builders/builders.2.kt +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/builders/builders.2.kt - */ - -package foo - -import java.util.ArrayList -import java.util.HashMap - -abstract class Element { - abstract fun render(builder: StringBuilder, indent: String) - - override fun toString(): String { - val builder = StringBuilder() - render(builder, "") - return builder.toString() - } -} - -class TextElement(val text: String) : Element() { - override fun render(builder: StringBuilder, indent: String) { - builder.append("$indent$text\n") - } -} - -abstract class Tag(val name: String) : Element() { - val children = ArrayList() - val attributes = HashMap() - - inline protected fun initTag(tag: T, init: T.() -> Unit): T { - tag.init() - children.add(tag) - return tag - } - - override fun render(builder: StringBuilder, indent: String) { - builder.append("$indent<$name${renderAttributes()}>\n") - for (c in children) { - c.render(builder, indent + " ") - } - builder.append("$indent\n") - } - - private fun renderAttributes(): String? { - val builder = StringBuilder() - for (a in attributes.keys) { - builder.append(" $a=\"${attributes[a]}\"") - } - return builder.toString() - } -} - -abstract class TagWithText(name: String) : Tag(name) { - operator fun String.unaryPlus() { - children.add(TextElement(this)) - } -} - -class HTML() : TagWithText("html") { - inline fun head(init: Head.() -> Unit) = initTag(Head(), init) - - inline fun body(init: Body.() -> Unit) = initTag(Body(), init) - - fun bodyNoInline(init: Body.() -> Unit) = initTag(Body(), init) -} - -class Head() : TagWithText("head") { - inline fun title(init: Title.() -> Unit) = initTag(Title(), init) -} - -class Title() : TagWithText("title") - -abstract class BodyTag(name: String) : TagWithText(name) { - inline fun b(init: B.() -> Unit) = initTag(B(), init) - inline fun p(init: P.() -> Unit) = initTag(P(), init) - inline fun pNoInline(init: P.() -> Unit) = initTag(P(), init) - inline fun h1(init: H1.() -> Unit) = initTag(H1(), init) - inline fun ul(init: UL.() -> Unit) = initTag(UL(), init) - inline fun a(href: String, init: A.() -> Unit) { - val a = initTag(A(), init) - a.href = href - } -} - -class Body() : BodyTag("body") -class UL() : BodyTag("ul") { - inline fun li(init: LI.() -> Unit) = initTag(LI(), init) -} - -class B() : BodyTag("b") -class LI() : BodyTag("li") -class P() : BodyTag("p") -class H1() : BodyTag("h1") -class A() : BodyTag("a") { - public var href: String - get() = attributes["href"]!! - set(value) { - attributes["href"] = value - } -} - -inline fun html(init: HTML.() -> Unit): HTML { - val html = HTML() - html.init() - return html -} - -fun htmlNoInline(init: HTML.() -> Unit): HTML { - val html = HTML() - html.init() - return html -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.2.kt b/js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.2.kt deleted file mode 100644 index 787324a5ccd..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/buildersAndLambdaCapturing/buildersAndLambdaCapturing.2.kt +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/builders/buildersAndLambdaCapturing.2.kt - */ - -package foo - -import java.util.ArrayList -import java.util.HashMap - -abstract class Element { - abstract fun render(builder: StringBuilder, indent: String) - - override fun toString(): String { - val builder = StringBuilder() - render(builder, "") - return builder.toString() - } -} - -class TextElement(val text: String) : Element() { - override fun render(builder: StringBuilder, indent: String) { - builder.append("$indent$text\n") - } -} - -abstract class Tag(val name: String) : Element() { - val children = ArrayList() - val attributes = HashMap() - - inline protected fun initTag(tag: T, init: T.() -> Unit): T { - tag.init() - children.add(tag) - return tag - } - - override fun render(builder: StringBuilder, indent: String) { - builder.append("$indent<$name${renderAttributes()}>\n") - for (c in children) { - c.render(builder, indent + " ") - } - builder.append("$indent\n") - } - - private fun renderAttributes(): String? { - val builder = StringBuilder() - for (a in attributes.keys) { - builder.append(" $a=\"${attributes[a]}\"") - } - return builder.toString() - } -} - -abstract class TagWithText(name: String) : Tag(name) { - operator fun String.unaryPlus() { - children.add(TextElement(this)) - } -} - -class HTML() : TagWithText("html") { - inline fun head(init: Head.() -> Unit) = initTag(Head(), init) - - inline fun body(init: Body.() -> Unit) = initTag(Body(), init) - - fun bodyNoInline(init: Body.() -> Unit) = initTag(Body(), init) -} - -class Head() : TagWithText("head") { - inline fun title(init: Title.() -> Unit) = initTag(Title(), init) -} - -class Title() : TagWithText("title") - -abstract class BodyTag(name: String) : TagWithText(name) { - inline fun b(init: B.() -> Unit) = initTag(B(), init) - inline fun p(init: P.() -> Unit) = initTag(P(), init) - fun pNoInline(init: P.() -> Unit) = initTag(P(), init) - inline fun h1(init: H1.() -> Unit) = initTag(H1(), init) - inline fun ul(init: UL.() -> Unit) = initTag(UL(), init) - inline fun a(href: String, init: A.() -> Unit) { - val a = initTag(A(), init) - a.href = href - } -} - -class Body() : BodyTag("body") -class UL() : BodyTag("ul") { - inline fun li(init: LI.() -> Unit) = initTag(LI(), init) -} - -class B() : BodyTag("b") -class LI() : BodyTag("li") -class P() : BodyTag("p") -class H1() : BodyTag("h1") -class A() : BodyTag("a") { - public var href: String - get() = attributes["href"]!! - set(value) { - attributes["href"] = value - } -} - -inline fun html(init: HTML.() -> Unit): HTML { - val html = HTML() - html.init() - return html -} - -fun htmlNoInline(init: HTML.() -> Unit): HTML { - val html = HTML() - html.init() - return html -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.2.kt b/js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.2.kt deleted file mode 100644 index 1a273386d8d..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/captureInlinable/captureInlinable.2.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/capture/captureInlinable.2.kt - */ - -package test - - -inline fun doWork(crossinline job: ()-> R) : R { - return notInline({job()}) -} - -fun notInline(job: ()-> R) : R { - return job() -} - diff --git a/js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.2.kt b/js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.2.kt deleted file mode 100644 index 32f6060ca63..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/captureInlinableAndOther/captureInlinableAndOther.2.kt +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/capture/captureInlinableAndOther.2.kt - */ - -package test - - -inline fun doWork(crossinline job: ()-> R) : R { - val k = 10; - return notInline({k; job()}) -} - -fun notInline(job: ()-> R) : R { - return job() -} - diff --git a/js/js.translator/testData/inlineMultiFile/cases/captureThisAndReceiver/captureThisAndReceiver.2.kt b/js/js.translator/testData/inlineMultiFile/cases/captureThisAndReceiver/captureThisAndReceiver.2.kt deleted file mode 100644 index 7f777963454..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/captureThisAndReceiver/captureThisAndReceiver.2.kt +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/capture/captureThisAndReceiver.2.kt - */ - -package foo - -class My(val value: Int) - -inline fun T.perform(job: (T)-> R) : R { - return job(this) -} - diff --git a/js/js.translator/testData/inlineMultiFile/cases/closureChain/closureChain.2.kt b/js/js.translator/testData/inlineMultiFile/cases/closureChain/closureChain.2.kt deleted file mode 100644 index 6c6fca3800f..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/closureChain/closureChain.2.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/complex/closureChain.2.kt - */ - -package foo - -class Inline() { - - inline fun foo(closure1 : (l: Int) -> String, param: Int, closure2: String.() -> Int) : Int { - return closure1(param).closure2() - } -} - diff --git a/js/js.translator/testData/inlineMultiFile/cases/defaultMethod/defaultMethod.2.kt b/js/js.translator/testData/inlineMultiFile/cases/defaultMethod/defaultMethod.2.kt deleted file mode 100644 index 671259224db..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/defaultMethod/defaultMethod.2.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/defaultValues/defaultMethod.2.kt - */ - -package test - -inline fun simpleFun(arg: String = "O", lambda: (String) -> T): T { - return lambda(arg) -} - -inline fun simpleFunR(lambda: (String) -> T, arg: String = "O"): T { - return lambda(arg) -} - diff --git a/js/js.translator/testData/inlineMultiFile/cases/generics/generics.2.kt b/js/js.translator/testData/inlineMultiFile/cases/generics/generics.2.kt deleted file mode 100644 index decfa1b70ac..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/generics/generics.2.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/capture/generics.2.kt - */ - -package test - -inline fun mfun(arg: T, f: (T) -> R) : R { - return f(arg) -} - -inline fun doSmth(a: T): String { - return a.toString() -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/inlineInDefaultParameter/inlineInDefaultParameter.2.kt b/js/js.translator/testData/inlineMultiFile/cases/inlineInDefaultParameter/inlineInDefaultParameter.2.kt deleted file mode 100644 index 497ba36fe0d..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/inlineInDefaultParameter/inlineInDefaultParameter.2.kt +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/defaultValues/inlineInDefaultParameter.2.kt - */ - -package test - -inline fun getStringInline(): String { - return "OK" -} diff --git a/js/js.translator/testData/inlineMultiFile/cases/inlineMultiFileSimple/inlineMultiFileSimple.1.kt b/js/js.translator/testData/inlineMultiFile/cases/inlineMultiFileSimple/inlineMultiFileSimple.1.kt deleted file mode 100644 index 5e3f196a89b..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/inlineMultiFileSimple/inlineMultiFileSimple.1.kt +++ /dev/null @@ -1,5 +0,0 @@ -package foo - -inline fun sum(a: Int, b: Int): Int { - return a + b -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/lambdaCloning/lambdaCloning.2.kt b/js/js.translator/testData/inlineMultiFile/cases/lambdaCloning/lambdaCloning.2.kt deleted file mode 100644 index 173256cea35..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/lambdaCloning/lambdaCloning.2.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/lambdaCloning.2.kt - */ - -package test - -inline fun doSmth(a: T) : String { - return {a.toString()}() -} - -inline fun doSmth2(a: T) : String { - return {{a.toString()}()}() -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambda2/lambdaInLambda2.2.kt b/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambda2/lambdaInLambda2.2.kt deleted file mode 100644 index 4baeb7d41ef..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambda2/lambdaInLambda2.2.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/lambdaInLambda2.2.kt - */ - -package test - -inline fun mfun(f: () -> R) { - f() -} - -fun concat(suffix: String, l: (s: String) -> Unit) { - l(suffix) -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.2.kt b/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.2.kt deleted file mode 100644 index ac30fb5f8a4..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/lambdaInLambdaNoInline/lambdaInLambdaNoInline.2.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/lambdaInLambdaNoInline.2.kt - */ - -package test - -fun concat(suffix: String, l: (s: String) -> Unit) { - l(suffix) -} - -fun noInlineFun(arg: T, f: (T) -> Unit) { - f(arg) -} - -inline fun doSmth(a: String): String { - return a.toString() -} diff --git a/js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.2.kt b/js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.2.kt deleted file mode 100644 index c67af8ae54c..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/regeneratedLambdaName/regeneratedLambdaName.2.kt +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/regeneratedLambdaName.2.kt - */ - -package test - - -inline fun call(crossinline f: () -> R) : R { - return {f()} () -} diff --git a/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.2.kt b/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.2.kt deleted file mode 100644 index 07725a9d331..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/sameCaptured/sameCaptured.2.kt +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/lambdaTransformation/sameCaptured.2.kt - */ - -package test - - -inline fun doWork(crossinline job: ()-> R) : R { - val k = 10; - return notInline({k; job()}) -} - -inline fun doWork(crossinline job: ()-> R, crossinline job2: () -> R) : R { - val k = 10; - return notInline({k; job(); job2()}) -} - -fun notInline(job: ()-> R) : R { - return job() -} - diff --git a/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInClass/simpleCapturingInClass.2.kt b/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInClass/simpleCapturingInClass.2.kt deleted file mode 100644 index d1132045ff5..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInClass/simpleCapturingInClass.2.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/capture/simpleCapturingInClass.2.kt - */ - -package foo - -class InlineAll { - - inline fun inline(s: (Int, Double, Double, String, Long) -> String, - a1: Int, a2: Double, a3: Double, a4: String, a5: Long): String { - return s(a1, a2, a3, a4, a5) - } -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInPackage/simpleCapturingInPackage.2.kt b/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInPackage/simpleCapturingInPackage.2.kt deleted file mode 100644 index bd4ce0ac63a..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/simpleCapturingInPackage/simpleCapturingInPackage.2.kt +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/capture/simpleCapturingInPackage.2.kt - */ - -package foo - -inline fun inline(s: (Int, Double, Double, String, Long) -> String, - a1: Int, a2: Double, a3: Double, a4: String, a5: Long): String { - return s(a1, a2, a3, a4, a5) -} diff --git a/js/js.translator/testData/inlineMultiFile/cases/simpleDefaultMethod/simpleDefaultMethod.2.kt b/js/js.translator/testData/inlineMultiFile/cases/simpleDefaultMethod/simpleDefaultMethod.2.kt deleted file mode 100644 index 594a6bca219..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/simpleDefaultMethod/simpleDefaultMethod.2.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/defaultValues/simpleDefaultMethod.2.kt - */ - -package test - -inline fun emptyFun(arg: String = "O") { - -} - -inline fun simpleFun(arg: String = "O"): String { - val r = arg; - return r; -} - diff --git a/js/js.translator/testData/inlineMultiFile/cases/trait/trait.2.kt b/js/js.translator/testData/inlineMultiFile/cases/trait/trait.2.kt deleted file mode 100644 index 53a30323539..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/trait/trait.2.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/trait/trait.2.kt - */ - -package test - -internal interface InlineTrait { - - public fun finalInline(s: () -> String): String { - return s() - } - - companion object { - public inline final fun finalInline(s: () -> String): String { - return s() - } - } -} - -class Z: InlineTrait { - -} \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/tryCatch/tryCatch.2.kt b/js/js.translator/testData/inlineMultiFile/cases/tryCatch/tryCatch.2.kt deleted file mode 100644 index cddd8dec7af..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/tryCatch/tryCatch.2.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/tryCatchFinally/tryCatch.2.kt - */ - -package foo - -class My(val value: Int) - -inline fun T.perform(job: (T)-> R) : R { - return job(this) -} - -inline fun String.toInt2() : Int = parseInt(this) - -class RuntimeExceptionWithValue(val value: String) : RuntimeException() \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/tryCatch2/tryCatch2.2.kt b/js/js.translator/testData/inlineMultiFile/cases/tryCatch2/tryCatch2.2.kt deleted file mode 100644 index b305298e9b3..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/tryCatch2/tryCatch2.2.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/tryCatchFinally/tryCatch2.2.kt - */ - -package foo - -class My(val value: Int) - -inline fun T.performWithFail(job: (T)-> R, failJob: (T) -> R): R { - try { - return job(this) - } catch (e: RuntimeExceptionWithValue) { - return failJob(this) - } -} - -inline fun T.performWithFail2(job: (T)-> R, failJob: (e: RuntimeExceptionWithValue, T) -> R): R { - try { - return job(this) - } catch (e: RuntimeExceptionWithValue) { - return failJob(e, this) - } -} - -@native object Number { - fun parseInt(str: String): Int = noImpl -} - -inline fun String.toInt2(): Int = parseInt(this) - -class RuntimeExceptionWithValue(val value: String = "") : RuntimeException() \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/tryCatchFinally/tryCatchFinally.2.kt b/js/js.translator/testData/inlineMultiFile/cases/tryCatchFinally/tryCatchFinally.2.kt deleted file mode 100644 index 32c06a76361..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/tryCatchFinally/tryCatchFinally.2.kt +++ /dev/null @@ -1,25 +0,0 @@ - - -package foo - -class My(val value: Int) - -inline fun T.performWithFinally(job: (T)-> R, finallyFun: (T) -> R) : R { - try { - job(this) - } finally { - return finallyFun(this) - } -} - -inline fun T.performWithFailFinally(job: (T)-> R, failJob : (e: RuntimeException, T) -> R, finallyFun: (T) -> R) : R { - try { - job(this) - } catch (e: RuntimeException) { - failJob(e, this) - } finally { - return finallyFun(this) - } -} - -inline fun String.toInt2() : Int = parseInt(this) \ No newline at end of file diff --git a/js/js.translator/testData/inlineMultiFile/cases/use/use.1.kt b/js/js.translator/testData/inlineMultiFile/cases/use/use.1.kt deleted file mode 100644 index 24495802fa1..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/use/use.1.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/complex/use.1.kt - */ - -package foo - -import test.* - -fun Data.test1(d: Data) : Int { - val input2 = Input(this) - val input = Input(this) - return input.use{ - val output = Output(d) - output.use{ - input.copyTo(output, 10) - } - } -} - - -fun box(): String { - - val result = Data().test1(Data()) - if (result != 100) return "test1: ${result}" - - return "OK" -} diff --git a/js/js.translator/testData/inlineMultiFile/cases/with/with.2.kt b/js/js.translator/testData/inlineMultiFile/cases/with/with.2.kt deleted file mode 100644 index ae490946a64..00000000000 --- a/js/js.translator/testData/inlineMultiFile/cases/with/with.2.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copy of JVM-backend test - * Found at: compiler/testData/codegen/boxInline/complex/with.2.kt - */ - -package test - - -public class Data() - -public class Input(val d: Data) : Closeable { - public fun data() : Int = 100 -} -public class Output(val d: Data) : Closeable { - public fun doOutput(data: Int): Int = data -} - -public interface Closeable { - open public fun close() {} -} - -public inline fun use(block: ()-> R) : R { - return block() -} - -public fun useNoInline(block: ()-> R) : R { - return block() -} - - -public fun Input.copyTo(output: Output, size: Int): Int { - return output.doOutput(this.data()) -} - -public inline fun with2(receiver : T, crossinline body : T.() -> Unit) : Unit = {receiver.body()}()