diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/InlineTest.java b/js/js.tests/test/org/jetbrains/k2js/test/semantics/InlineTest.java index 4142e1ac038..d555fffe261 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/semantics/InlineTest.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/InlineTest.java @@ -16,72 +16,10 @@ package org.jetbrains.k2js.test.semantics; -import com.intellij.openapi.util.io.FileUtil; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.k2js.config.EcmaVersion; import org.jetbrains.k2js.test.SingleFileTranslationTest; -import java.io.File; - - -//TODO: -//Inlining turned off -@SuppressWarnings("UnusedDeclaration") -public abstract class InlineTest extends SingleFileTranslationTest { +public final class InlineTest extends SingleFileTranslationTest { public InlineTest() { super("inline/"); } - - public void testFunctionWithoutParameters() throws Exception { - checkFooBoxIsTrueAndFunctionNameIsNotReferenced("functionWithoutParameters.kt", "myInlineFun"); - } - - public void testFunctionWithBlockBody() throws Exception { - checkFooBoxIsTrueAndFunctionNameIsNotReferenced("functionWithBlockBody.kt", "myInlineFun"); - } - - public void testFunctionWithOneParameter() throws Exception { - checkFooBoxIsTrueAndFunctionNameIsNotReferenced("functionWithOneParameter.kt", "myInlineFun"); - } - - public void testFunctionWithTwoParameters() throws Exception { - checkFooBoxIsTrueAndFunctionNameIsNotReferenced("functionWithTwoParameters.kt", "myInlineFun"); - } - - public void testMethod() throws Exception { - checkFooBoxIsTrueAndFunctionNameIsNotReferenced("method.kt", "myInlineMethod"); - } - - public void testMethodWithReferenceToThis() throws Exception { - checkFooBoxIsTrueAndFunctionNameIsNotReferenced("methodWithReferenceToThis.kt", "myInlineMethod"); - } - - public void testMethodWithIndirectlyReferencedThis() throws Exception { - checkFooBoxIsTrueAndFunctionNameIsNotReferenced("methodWithIndirectlyReferencedThis.kt", "myInlineMethod"); - } - - public void testExtension() throws Exception { - checkFooBoxIsTrueAndFunctionNameIsNotReferenced("extension.kt", "myInlineExtension"); - } - - public void testExtensionWithParameter() throws Exception { - checkFooBoxIsTrueAndFunctionNameIsNotReferenced("extensionWithParameter.kt", "myInlineExtension"); - } - - private void checkFooBoxIsTrueAndFunctionNameIsNotReferenced(@NotNull String filename, String funName) throws Exception { - fooBoxTest(); - String generatedJSFilePath = getOutputFilePath(filename, EcmaVersion.defaultVersion()); - String outputFileText = FileUtil.loadFile(new File(generatedJSFilePath), true); - assertTrue(countOccurrences(outputFileText, funName) == 1); - } - - private static int countOccurrences(@NotNull String str, @NotNull String subStr) { - int count = 0; - String s = str; - while (s.contains(subStr)) { - s = s.replaceFirst(subStr, ""); - count++; - } - return count; - } } diff --git a/js/js.translator/testData/inline/cases/extension.kt b/js/js.translator/testData/inline/cases/extension.kt deleted file mode 100644 index 929be5c12d0..00000000000 --- a/js/js.translator/testData/inline/cases/extension.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -class A() { - val a = 5 -} - -inline fun A.myInlineExtension() = a + 1 - -fun box() = A().myInlineExtension() == 6 \ No newline at end of file diff --git a/js/js.translator/testData/inline/cases/extensionWithParameter.kt b/js/js.translator/testData/inline/cases/extensionWithParameter.kt deleted file mode 100644 index aecd6b2c651..00000000000 --- a/js/js.translator/testData/inline/cases/extensionWithParameter.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -class A() { - val a = 5 -} - -inline fun A.myInlineExtension(i: Int) = a + i - -fun box() = A().myInlineExtension(1) == 6 \ No newline at end of file diff --git a/js/js.translator/testData/inline/cases/functionWithBlockBody.kt b/js/js.translator/testData/inline/cases/functionWithBlockBody.kt deleted file mode 100644 index 82d48b3db9e..00000000000 --- a/js/js.translator/testData/inline/cases/functionWithBlockBody.kt +++ /dev/null @@ -1,7 +0,0 @@ -package foo - -fun box() = !myInlineFun() - -inline fun myInlineFun(): Boolean { - return false -} diff --git a/js/js.translator/testData/inline/cases/functionWithOneParameter.kt b/js/js.translator/testData/inline/cases/functionWithOneParameter.kt deleted file mode 100644 index 902b2295aa2..00000000000 --- a/js/js.translator/testData/inline/cases/functionWithOneParameter.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -fun box(): Boolean { - val t = myInlineFun(1 == 2) - val f = myInlineFun(1 == 2) - return t and f -} - -inline fun myInlineFun(t: Boolean) = !t diff --git a/js/js.translator/testData/inline/cases/functionWithTwoParameters.kt b/js/js.translator/testData/inline/cases/functionWithTwoParameters.kt deleted file mode 100644 index 03ffa2386d4..00000000000 --- a/js/js.translator/testData/inline/cases/functionWithTwoParameters.kt +++ /dev/null @@ -1,13 +0,0 @@ -package foo - -fun box(): Boolean { - if (myInlineFun(3, 2) != 1) { - return false; - } - if (myInlineFun(100, -100) != 200) { - return false; - } - return true; -} - -inline fun myInlineFun(l: Int, r: Int) = l - r diff --git a/js/js.translator/testData/inline/cases/functionWithoutParameters.kt b/js/js.translator/testData/inline/cases/functionWithoutParameters.kt deleted file mode 100644 index 7cdce9f9f42..00000000000 --- a/js/js.translator/testData/inline/cases/functionWithoutParameters.kt +++ /dev/null @@ -1,5 +0,0 @@ -package foo - -fun box() = myInlineFun() - -inline fun myInlineFun() = true diff --git a/js/js.translator/testData/inline/cases/method.kt b/js/js.translator/testData/inline/cases/method.kt deleted file mode 100644 index a5e7f06dcc8..00000000000 --- a/js/js.translator/testData/inline/cases/method.kt +++ /dev/null @@ -1,11 +0,0 @@ -package foo - -fun box(): Boolean { - return (!(A().myInlineMethod())) -} - -class A() { - inline fun myInlineMethod(): Boolean { - return false - } -} \ No newline at end of file diff --git a/js/js.translator/testData/inline/cases/methodWithIndirectlyReferencedThis.kt b/js/js.translator/testData/inline/cases/methodWithIndirectlyReferencedThis.kt deleted file mode 100644 index eabd64fdbe4..00000000000 --- a/js/js.translator/testData/inline/cases/methodWithIndirectlyReferencedThis.kt +++ /dev/null @@ -1,13 +0,0 @@ -package foo - -fun box(): Boolean { - return !(A(false).wrap()) and A(true).wrap() -} - -class A(val a: Boolean) { - inline fun myInlineMethod(): Boolean { - return a - } - - fun wrap() = myInlineMethod() -} \ No newline at end of file diff --git a/js/js.translator/testData/inline/cases/methodWithReferenceToThis.kt b/js/js.translator/testData/inline/cases/methodWithReferenceToThis.kt deleted file mode 100644 index 2aaaa7722dc..00000000000 --- a/js/js.translator/testData/inline/cases/methodWithReferenceToThis.kt +++ /dev/null @@ -1,11 +0,0 @@ -package foo - -fun box(): Boolean { - return !(A(false).myInlineMethod()) and A(true).myInlineMethod() -} - -class A(val a: Boolean) { - inline fun myInlineMethod(): Boolean { - return a - } -} \ No newline at end of file