diff --git a/compiler/testData/asJava/script/ide/HelloWorld.java b/compiler/testData/asJava/script/ide/HelloWorld.java new file mode 100644 index 00000000000..cc01b0f9167 --- /dev/null +++ b/compiler/testData/asJava/script/ide/HelloWorld.java @@ -0,0 +1,5 @@ +public class HelloWorld { + public static final void main(java.lang.String[] p) { /* compiled code */ } + + public HelloWorld() { /* compiled code */ } +} \ No newline at end of file diff --git a/compiler/testData/asJava/script/ide/HelloWorld.kts b/compiler/testData/asJava/script/ide/HelloWorld.kts new file mode 100644 index 00000000000..6a749c71ac9 --- /dev/null +++ b/compiler/testData/asJava/script/ide/HelloWorld.kts @@ -0,0 +1,5 @@ +// HelloWorld + +println("Hello world!") + +// LAZINESS:NoLaziness \ No newline at end of file diff --git a/compiler/testData/asJava/script/ide/InnerClasses.java b/compiler/testData/asJava/script/ide/InnerClasses.java new file mode 100644 index 00000000000..5c50f1ca54a --- /dev/null +++ b/compiler/testData/asJava/script/ide/InnerClasses.java @@ -0,0 +1,24 @@ +public class InnerClasses { + public static final void main(java.lang.String[] p) { /* compiled code */ } + + public InnerClasses() { /* compiled code */ } + + public static final class Bar { + private final int b; + private final int a; + + public final int getB() { /* compiled code */ } + + public final int getAPlusB() { /* compiled code */ } + + public final int getA() { /* compiled code */ } + + public Bar(int a) { /* compiled code */ } + + public static final class Baz { + public final void doSomething() { /* compiled code */ } + + public Baz() { /* compiled code */ } + } + } +} diff --git a/compiler/testData/asJava/script/ide/InnerClasses.kts b/compiler/testData/asJava/script/ide/InnerClasses.kts new file mode 100644 index 00000000000..7535d2d8041 --- /dev/null +++ b/compiler/testData/asJava/script/ide/InnerClasses.kts @@ -0,0 +1,15 @@ +// InnerClasses + +class Bar(val a: Int) { + val b: Int = { 0 }() + + fun getAPlusB() = a + b + + class Baz { + fun doSomething() { + + } + } +} + +// LAZINESS:NoLaziness \ No newline at end of file diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index c64d4120715..6fef4c2ff9a 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -919,7 +919,11 @@ fun main(args: Array) { } testClass { - model("asJava/lightClasses", excludeDirs = listOf("delegation"), pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) + model("asJava/lightClasses", excludeDirs = listOf("delegation", "script"), pattern = KT_WITHOUT_DOTS_IN_NAME) + } + + testClass { + model("asJava/script/ide", pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) } testClass { diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.183 b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.183 index b6d0b8c601a..b7c6839430a 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.183 +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.183 @@ -867,7 +867,11 @@ fun main(args: Array) { } testClass { - model("asJava/lightClasses", excludeDirs = listOf("delegation"), pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) + model("asJava/lightClasses", excludeDirs = listOf("delegation", "script"), pattern = KT_WITHOUT_DOTS_IN_NAME) + } + + testClass { + model("asJava/script/ide", pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) } testClass { diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as34 b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as34 index 74ee01ad823..41e6d583905 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as34 +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as34 @@ -841,7 +841,11 @@ fun main(args: Array) { } testClass { - model("asJava/lightClasses", excludeDirs = listOf("delegation"), pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) + model("asJava/lightClasses", excludeDirs = listOf("delegation", "script"), pattern = KT_WITHOUT_DOTS_IN_NAME) + } + + testClass { + model("asJava/script/ide", pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) } testClass { diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as35 b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as35 index 3424c6d9b71..81297f2f5e2 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as35 +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as35 @@ -837,7 +837,11 @@ fun main(args: Array) { } testClass { - model("asJava/lightClasses", excludeDirs = listOf("delegation"), pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) + model("asJava/lightClasses", excludeDirs = listOf("delegation", "script"), pattern = KT_WITHOUT_DOTS_IN_NAME) + } + + testClass { + model("asJava/script/ide", pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) } testClass { diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as36 b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as36 index 3424c6d9b71..81297f2f5e2 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as36 +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt.as36 @@ -837,7 +837,11 @@ fun main(args: Array) { } testClass { - model("asJava/lightClasses", excludeDirs = listOf("delegation"), pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) + model("asJava/lightClasses", excludeDirs = listOf("delegation", "script"), pattern = KT_WITHOUT_DOTS_IN_NAME) + } + + testClass { + model("asJava/script/ide", pattern = KT_OR_KTS_WITHOUT_DOTS_IN_NAME) } testClass { diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassForScriptTest.kt b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassForScriptTest.kt new file mode 100644 index 00000000000..eb3e2030c95 --- /dev/null +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassForScriptTest.kt @@ -0,0 +1,10 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.caches.resolve + +abstract class AbstractIdeLightClassForScriptTest : AbstractIdeLightClassTest() { + override val fileExtension = ".kts" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt index 790297d2f5d..2026d8ec57b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/AbstractIdeLightClassTest.kt @@ -47,8 +47,7 @@ abstract class AbstractIdeLightClassTest : KotlinLightCodeInsightFixtureTestCase fun doTest(testDataPath: String) { forceUsingOldLightClassesForTest() val extraFilePath = when { - testDataPath.endsWith(".kt") -> testDataPath.replace(".kt", ".extra.kt") - testDataPath.endsWith(".kts") -> testDataPath.replace(".kts", ".extra.kts") + testDataPath.endsWith(fileExtension) -> testDataPath.replace(fileExtension, ".extra" + fileExtension) else -> error("Invalid test data extension") } @@ -79,6 +78,8 @@ abstract class AbstractIdeLightClassTest : KotlinLightCodeInsightFixtureTestCase } override fun getProjectDescriptor() = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE + + open val fileExtension = ".kt" } abstract class AbstractIdeCompiledLightClassTest : KotlinDaemonAnalyzerTestCase() { diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassForScriptTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassForScriptTestGenerated.java new file mode 100644 index 00000000000..b4a51ce654d --- /dev/null +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassForScriptTestGenerated.java @@ -0,0 +1,41 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.caches.resolve; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TargetBackend; +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("compiler/testData/asJava/script/ide") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class IdeLightClassForScriptTestGenerated extends AbstractIdeLightClassForScriptTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInIde() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/asJava/script/ide"), Pattern.compile("^([^.]+)\\.(kt|kts)$"), TargetBackend.ANY, true); + } + + @TestMetadata("HelloWorld.kts") + public void testHelloWorld() throws Exception { + runTest("compiler/testData/asJava/script/ide/HelloWorld.kts"); + } + + @TestMetadata("InnerClasses.kts") + public void testInnerClasses() throws Exception { + runTest("compiler/testData/asJava/script/ide/InnerClasses.kts"); + } +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java index 715246325ea..caef866c57a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java @@ -26,7 +26,7 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { } public void testAllFilesPresentInLightClasses() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/asJava/lightClasses"), Pattern.compile("^([^.]+)\\.(kt|kts)$"), TargetBackend.ANY, true, "delegation"); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/asJava/lightClasses"), Pattern.compile("^([^.]+)\\.(kt|kts)$"), TargetBackend.ANY, true, "delegation", "script"); } @TestMetadata("AnnotatedParameterInEnumConstructor.kt") @@ -486,27 +486,4 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { runTest("compiler/testData/asJava/lightClasses/publicField/Simple.kt"); } } - - @TestMetadata("compiler/testData/asJava/lightClasses/script") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class Script extends AbstractIdeLightClassTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); - } - - public void testAllFilesPresentInScript() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/asJava/lightClasses/script"), Pattern.compile("^([^.]+)\\.(kt|kts)$"), TargetBackend.ANY, true); - } - - @TestMetadata("HelloWorld.kts") - public void testHelloWorld() throws Exception { - runTest("compiler/testData/asJava/lightClasses/script/HelloWorld.kts"); - } - - @TestMetadata("InnerClasses.kts") - public void testInnerClasses() throws Exception { - runTest("compiler/testData/asJava/lightClasses/script/InnerClasses.kts"); - } - } }