From 325ed8eb3206829e51df921a345fc2ec08f12072 Mon Sep 17 00:00:00 2001 From: Andrey Uskov Date: Thu, 28 Feb 2019 00:26:53 +0300 Subject: [PATCH] Change class hierarchy of KotlinSourceRootType. Deadlock during concurrent classloading fixed #KT-30137 Fixed --- .../idea/caches/project/IdeaModuleInfos.kt | 6 +- .../kotlin/idea/core/fileIndexUtils.kt | 11 +- .../kotlin/idea/core/packageUtils.kt | 5 +- .../NewMultiplatformProjectImportingTest.kt | 52 ++++----- .../gradle/GradleFacetImportTest.kt | 108 +++++++++--------- .../gradle/GradleFacetImportTest.kt.181 | 108 +++++++++--------- .../kotlin/config/KotlinResourceRootType.kt | 7 +- .../config/KotlinResourceRootType.kt.182 | 7 +- .../config/KotlinResourceRootType.kt.191 | 11 +- .../config/KotlinResourceRootType.kt.as34 | 7 +- .../kotlin/config/KotlinSourceRootType.kt | 11 +- .../kotlin/config/KotlinSourceRootType.kt.182 | 11 +- .../kotlin/config/KotlinSourceRootType.kt.191 | 15 ++- .../config/KotlinSourceRootType.kt.as34 | 13 ++- .../config/KotlinSourceRootType.kt.as35 | 31 +++++ .../moduleSourceRootPropertiesSerializers.kt | 10 +- .../kotlin/idea/maven/KotlinMavenImporter.kt | 12 +- .../jetbrains/kotlin/idea/maven/PomFile.kt | 7 +- .../AbstractKotlinMavenInspectionTest.kt | 4 +- .../idea/maven/KotlinMavenImporterTest.kt | 88 +++++++------- .../KotlinNonJvmOrderEnumerationHandler.kt | 6 +- .../kotlin/idea/roots/projectRootUtils.kt | 13 +-- .../roots/ui/KotlinContentEntriesEditor.kt | 15 ++- .../roots/ui/KotlinSourceRootEditHandler.kt | 19 ++- .../jps/build/KotlinResourcesRootProvider.kt | 5 +- .../jps/build/KotlinSourceRootProvider.kt | 9 +- 26 files changed, 313 insertions(+), 278 deletions(-) create mode 100644 idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.as35 diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt index d638ed0f888..7383fa42b61 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.analyzer.TrackableModuleInfo import org.jetbrains.kotlin.caches.project.LibraryModuleInfo import org.jetbrains.kotlin.caches.resolve.resolution -import org.jetbrains.kotlin.config.KotlinSourceRootType +import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.idea.caches.resolve.util.enlargedSearchScope import org.jetbrains.kotlin.idea.configuration.BuildSystemType @@ -210,8 +210,8 @@ fun Module.testSourceInfo(): ModuleTestSourceInfo? = if (hasTestRoots()) ModuleT internal fun Module.correspondingModuleInfos(): List = listOf(testSourceInfo(), productionSourceInfo()).filterNotNull() -private fun Module.hasProductionRoots() = hasRootsOfType(JavaSourceRootType.SOURCE) || hasRootsOfType(KotlinSourceRootType.Source) || (isNewMPPModule && sourceType == SourceType.PRODUCTION) -private fun Module.hasTestRoots() = hasRootsOfType(JavaSourceRootType.TEST_SOURCE) || hasRootsOfType(KotlinSourceRootType.TestSource) || (isNewMPPModule && sourceType == SourceType.TEST) +private fun Module.hasProductionRoots() = hasRootsOfType(JavaSourceRootType.SOURCE) || hasRootsOfType(SourceKotlinRootType) || (isNewMPPModule && sourceType == SourceType.PRODUCTION) +private fun Module.hasTestRoots() = hasRootsOfType(JavaSourceRootType.TEST_SOURCE) || hasRootsOfType(TestSourceKotlinRootType) || (isNewMPPModule && sourceType == SourceType.TEST) private fun Module.hasRootsOfType(sourceRootType: JpsModuleSourceRootType<*>): Boolean = rootManager.contentEntries.any { it.getSourceFolders(sourceRootType).isNotEmpty() } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/fileIndexUtils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/fileIndexUtils.kt index 445e679fc20..f3aaf3a115a 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/fileIndexUtils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/fileIndexUtils.kt @@ -10,23 +10,22 @@ import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.jps.model.java.JavaResourceRootType import org.jetbrains.jps.model.java.JavaSourceRootType import org.jetbrains.jps.model.module.JpsModuleSourceRootType -import org.jetbrains.kotlin.config.KotlinResourceRootType -import org.jetbrains.kotlin.config.KotlinSourceRootType +import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.idea.caches.project.SourceType import org.jetbrains.kotlin.idea.util.isInSourceContentWithoutInjected private val testRootTypes: Set> = setOf( JavaSourceRootType.TEST_SOURCE, JavaResourceRootType.TEST_RESOURCE, - KotlinSourceRootType.TestSource, - KotlinResourceRootType.TestResource + TestSourceKotlinRootType, + TestResourceKotlinRootType ) private val sourceRootTypes = setOf>( JavaSourceRootType.SOURCE, JavaResourceRootType.RESOURCE, - KotlinSourceRootType.Source, - KotlinResourceRootType.Resource + SourceKotlinRootType, + ResourceKotlinRootType ) fun JpsModuleSourceRootType<*>.getSourceType(): SourceType? = when(this) { diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/packageUtils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/packageUtils.kt index 315f2cd4879..3c13554852f 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/packageUtils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/packageUtils.kt @@ -19,7 +19,8 @@ import com.intellij.util.Query import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes import org.jetbrains.jps.model.java.JavaSourceRootProperties import org.jetbrains.jps.model.module.JpsModuleSourceRootType -import org.jetbrains.kotlin.config.KotlinSourceRootType +import org.jetbrains.kotlin.config.SourceKotlinRootType +import org.jetbrains.kotlin.config.TestSourceKotlinRootType import org.jetbrains.kotlin.idea.caches.PerModulePackageCacheService import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots import org.jetbrains.kotlin.idea.util.rootManager @@ -79,7 +80,7 @@ private fun findLongestExistingPackage(module: Module, packageName: String): Psi } private val kotlinSourceRootTypes: Set> = - setOf(KotlinSourceRootType.Source, KotlinSourceRootType.TestSource) + JavaModuleSourceRootTypes.SOURCES + setOf(SourceKotlinRootType, TestSourceKotlinRootType) + JavaModuleSourceRootTypes.SOURCES private fun Module.getNonGeneratedKotlinSourceRoots(): List { val result = mutableListOf() diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt index e2e6bd0932e..cb741415e9e 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/NewMultiplatformProjectImportingTest.kt @@ -8,9 +8,7 @@ package org.jetbrains.kotlin.gradle import com.intellij.openapi.roots.* import org.jetbrains.jps.model.java.JavaResourceRootType import org.jetbrains.jps.model.java.JavaSourceRootType -import org.jetbrains.kotlin.config.JvmTarget -import org.jetbrains.kotlin.config.KotlinResourceRootType -import org.jetbrains.kotlin.config.KotlinSourceRootType +import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.idea.codeInsight.gradle.ExternalSystemImportingTestCase import org.jetbrains.kotlin.idea.codeInsight.gradle.MultiplePluginVersionGradleImportingTestCase import org.jetbrains.kotlin.platform.impl.CommonIdePlatformKind @@ -65,8 +63,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin platform(CommonIdePlatformKind.Platform) libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE) moduleDependency("lib_commonMain", DependencyScope.COMPILE) - sourceFolder("app/src/commonMain/kotlin", KotlinSourceRootType.Source) - sourceFolder("app/src/commonMain/resources", KotlinResourceRootType.Resource) + sourceFolder("app/src/commonMain/kotlin", SourceKotlinRootType) + sourceFolder("app/src/commonMain/resources", ResourceKotlinRootType) inheritProjectOutput() } module("app_commonTest") { @@ -74,8 +72,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.TEST) moduleDependency("lib_commonMain", DependencyScope.TEST) moduleDependency("app_commonMain", DependencyScope.TEST) - sourceFolder("app/src/commonTest/kotlin", KotlinSourceRootType.TestSource) - sourceFolder("app/src/commonTest/resources", KotlinResourceRootType.TestResource) + sourceFolder("app/src/commonTest/kotlin", TestSourceKotlinRootType) + sourceFolder("app/src/commonTest/resources", TestResourceKotlinRootType) inheritProjectOutput() } module("app_jsMain") { @@ -85,8 +83,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("lib_jsMain", DependencyScope.COMPILE) moduleDependency("lib_commonMain", DependencyScope.COMPILE) moduleDependency("app_commonMain", DependencyScope.COMPILE) - sourceFolder("app/src/jsMain/kotlin", KotlinSourceRootType.Source) - sourceFolder("app/src/jsMain/resources", KotlinResourceRootType.Resource) + sourceFolder("app/src/jsMain/kotlin", SourceKotlinRootType) + sourceFolder("app/src/jsMain/resources", ResourceKotlinRootType) outputPath("app/build/classes/kotlin/js/main", true) } module("app_jsTest") { @@ -98,8 +96,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("app_commonMain", DependencyScope.TEST) moduleDependency("app_commonTest", DependencyScope.TEST) moduleDependency("app_jsMain", DependencyScope.TEST) - sourceFolder("app/src/jsTest/kotlin", KotlinSourceRootType.TestSource) - sourceFolder("app/src/jsTest/resources", KotlinResourceRootType.TestResource) + sourceFolder("app/src/jsTest/kotlin", TestSourceKotlinRootType) + sourceFolder("app/src/jsTest/resources", TestResourceKotlinRootType) outputPath("app/build/classes/kotlin/js/test", false) } module("app_jvmMain") { @@ -157,16 +155,16 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin module("lib_commonMain") { platform(CommonIdePlatformKind.Platform) libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE) - sourceFolder("lib/src/commonMain/kotlin", KotlinSourceRootType.Source) - sourceFolder("lib/src/commonMain/resources", KotlinResourceRootType.Resource) + sourceFolder("lib/src/commonMain/kotlin", SourceKotlinRootType) + sourceFolder("lib/src/commonMain/resources", ResourceKotlinRootType) inheritProjectOutput() } module("lib_commonTest") { platform(CommonIdePlatformKind.Platform) libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.TEST) moduleDependency("lib_commonMain", DependencyScope.TEST) - sourceFolder("lib/src/commonTest/kotlin", KotlinSourceRootType.TestSource) - sourceFolder("lib/src/commonTest/resources", KotlinResourceRootType.TestResource) + sourceFolder("lib/src/commonTest/kotlin", TestSourceKotlinRootType) + sourceFolder("lib/src/commonTest/resources", TestResourceKotlinRootType) inheritProjectOutput() } module("lib_jsMain") { @@ -174,8 +172,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-js:${kotlinVersion()}", DependencyScope.COMPILE) libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE) moduleDependency("lib_commonMain", DependencyScope.COMPILE) - sourceFolder("lib/src/jsMain/kotlin", KotlinSourceRootType.Source) - sourceFolder("lib/src/jsMain/resources", KotlinResourceRootType.Resource) + sourceFolder("lib/src/jsMain/kotlin", SourceKotlinRootType) + sourceFolder("lib/src/jsMain/resources", ResourceKotlinRootType) outputPath("lib/build/classes/kotlin/js/main", true) } module("lib_jsTest") { @@ -185,8 +183,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("lib_commonMain", DependencyScope.TEST) moduleDependency("lib_commonTest", DependencyScope.TEST) moduleDependency("lib_jsMain", DependencyScope.TEST) - sourceFolder("lib/src/jsTest/kotlin", KotlinSourceRootType.TestSource) - sourceFolder("lib/src/jsTest/resources", KotlinResourceRootType.TestResource) + sourceFolder("lib/src/jsTest/kotlin", TestSourceKotlinRootType) + sourceFolder("lib/src/jsTest/resources", TestResourceKotlinRootType) outputPath("lib/build/classes/kotlin/js/test", false) } module("lib_jvmMain") { @@ -305,14 +303,14 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin module("shared") module("shared_commonMain") { libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE) - sourceFolder("shared/src/commonMain/kotlin", KotlinSourceRootType.Source) - sourceFolder("shared/src/commonMain/resources", KotlinResourceRootType.Resource) + sourceFolder("shared/src/commonMain/kotlin", SourceKotlinRootType) + sourceFolder("shared/src/commonMain/resources", ResourceKotlinRootType) } module("shared_commonTest") { libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.TEST) moduleDependency("shared_commonMain", DependencyScope.TEST) - sourceFolder("shared/src/commonTest/kotlin", KotlinSourceRootType.TestSource) - sourceFolder("shared/src/commonTest/resources", KotlinResourceRootType.TestResource) + sourceFolder("shared/src/commonTest/kotlin", TestSourceKotlinRootType) + sourceFolder("shared/src/commonTest/resources", TestResourceKotlinRootType) } module("shared_androidMain") { libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE) @@ -340,8 +338,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin libraryDependency("Kotlin/Native $nativeVersion - stdlib", DependencyScope.PROVIDED) libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE) moduleDependency("shared_commonMain", DependencyScope.COMPILE) - sourceFolder("shared/src/iOSMain/kotlin", KotlinSourceRootType.Source) - sourceFolder("shared/src/iOSMain/resources", KotlinResourceRootType.Resource) + sourceFolder("shared/src/iOSMain/kotlin", SourceKotlinRootType) + sourceFolder("shared/src/iOSMain/resources", ResourceKotlinRootType) } module("shared_iOSTest") { libraryDependency("Kotlin/Native $nativeVersion - stdlib", DependencyScope.PROVIDED) @@ -349,8 +347,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin moduleDependency("shared_iOSMain", DependencyScope.TEST) moduleDependency("shared_commonMain", DependencyScope.TEST) moduleDependency("shared_commonTest", DependencyScope.TEST) - sourceFolder("shared/src/iOSTest/kotlin", KotlinSourceRootType.TestSource) - sourceFolder("shared/src/iOSTest/resources", KotlinResourceRootType.TestResource) + sourceFolder("shared/src/iOSTest/kotlin", TestSourceKotlinRootType) + sourceFolder("shared/src/iOSTest/resources", TestResourceKotlinRootType) } } } diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt index f9d524a4bfd..317e7d53015 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt @@ -632,16 +632,16 @@ compileTestKotlin { assertKotlinSdk("project_main", "project_test") Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) assertAllModulesConfigured() @@ -696,16 +696,16 @@ compileTestKotlin { assertAllModulesConfigured() Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -792,16 +792,16 @@ compileTestKotlin { assertAllModulesConfigured() Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -927,16 +927,16 @@ compileTestKotlin { assertEquals(CommonLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-common") == true }.kind) Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -985,16 +985,16 @@ compileTestKotlin { assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind) Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -1042,13 +1042,13 @@ compileTestKotlin { assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind) Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/main/resources" to KotlinResourceRootType.Resource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project") + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project") ) } @@ -1129,16 +1129,16 @@ compileTestKotlin { } Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -2106,14 +2106,14 @@ compileTestKotlin { assertKotlinSdk("project_main", "project_test") Assert.assertEquals( - listOf("file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt.181 b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt.181 index 28b1d55b148..f050e880ad9 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt.181 +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleFacetImportTest.kt.181 @@ -632,16 +632,16 @@ compileTestKotlin { assertKotlinSdk("project_main", "project_test") Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) assertAllModulesConfigured() @@ -696,16 +696,16 @@ compileTestKotlin { assertAllModulesConfigured() Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -792,16 +792,16 @@ compileTestKotlin { assertAllModulesConfigured() Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -927,16 +927,16 @@ compileTestKotlin { assertEquals(CommonLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-common") == true }.kind) Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -987,16 +987,16 @@ compileTestKotlin { assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind) Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -1044,13 +1044,13 @@ compileTestKotlin { assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind) Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/main/resources" to KotlinResourceRootType.Resource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project") + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project") ) } @@ -1131,16 +1131,16 @@ compileTestKotlin { } Assert.assertEquals( - listOf("file:///src/main/java" to KotlinSourceRootType.Source, - "file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/java" to SourceKotlinRootType, + "file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/java" to KotlinSourceRootType.TestSource, - "file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/java" to TestSourceKotlinRootType, + "file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } @@ -2114,14 +2114,14 @@ compileTestKotlin { assertKotlinSdk("project_main", "project_test") Assert.assertEquals( - listOf("file:///src/main/kotlin" to KotlinSourceRootType.Source, - "file:///src/main/resources" to KotlinResourceRootType.Resource), + listOf("file:///src/main/kotlin" to SourceKotlinRootType, + "file:///src/main/resources" to ResourceKotlinRootType), getSourceRootInfos("project_main") ) Assert.assertEquals( - listOf("file:///src/test/kotlin" to KotlinSourceRootType.TestSource, - "file:///src/test/resources" to KotlinResourceRootType.TestResource), - getSourceRootInfos("project_test") + listOf("file:///src/test/kotlin" to TestSourceKotlinRootType, + "file:///src/test/resources" to TestResourceKotlinRootType), + getSourceRootInfos("project_test") ) } diff --git a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinResourceRootType.kt b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinResourceRootType.kt index b9172990487..1ebd0ae647e 100644 --- a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinResourceRootType.kt +++ b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinResourceRootType.kt @@ -13,8 +13,6 @@ import org.jetbrains.jps.model.module.JpsModuleSourceRootType sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase(), JpsModuleSourceRootType, KotlinRootType { - object Resource : KotlinResourceRootType(false) - object TestResource : KotlinResourceRootType(true) override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createResourceRootProperties("", false) @@ -24,4 +22,7 @@ sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase(), JpsModuleSourceRootType, KotlinRootType { - object Resource : KotlinResourceRootType(false) - object TestResource : KotlinResourceRootType(true) override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createResourceRootProperties("", false) @@ -22,4 +20,7 @@ sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase(), JpsModuleSourceRootType { - object Resource : KotlinResourceRootType() - - object TestResource : KotlinResourceRootType() { - override fun isForTests() = true - } override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createResourceRootProperties("", false) +} + +object ResourceKotlinRootType : KotlinResourceRootType() + +object TestResourceKotlinRootType : KotlinResourceRootType() { + override fun isForTests() = true } \ No newline at end of file diff --git a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinResourceRootType.kt.as34 b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinResourceRootType.kt.as34 index fff8d020dea..f56429d6ec9 100644 --- a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinResourceRootType.kt.as34 +++ b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinResourceRootType.kt.as34 @@ -13,8 +13,6 @@ import org.jetbrains.jps.model.module.JpsModuleSourceRootType sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase(), JpsModuleSourceRootType, KotlinRootType { - object Resource : KotlinResourceRootType(false) - object TestResource : KotlinResourceRootType(true) override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createResourceRootProperties("", false) @@ -22,4 +20,7 @@ sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase(), JpsModuleSourceRootType, KotlinRootType { - object Source : KotlinSourceRootType(false) - object TestSource : KotlinSourceRootType(true) + override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("") - companion object { - val ALL_SOURCES = setOf(Source, TestSource) - } override fun isTestRoot() = isTest @@ -28,3 +24,8 @@ sealed class KotlinSourceRootType(val isTest: Boolean) : JpsElementTypeBase(), JpsModuleSourceRootType, KotlinRootType { - object Source : KotlinSourceRootType(false) - object TestSource : KotlinSourceRootType(true) + override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("") - companion object { - val ALL_SOURCES = setOf(Source, TestSource) - } override fun isTestRoot() = isTest override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other) } +object SourceKotlinRootType : KotlinSourceRootType(false) + +object TestSourceKotlinRootType : KotlinSourceRootType(true) + +val ALL_KOTLIN_SOURCE_ROOT_TYPES = setOf(SourceKotlinRootType, TestSourceKotlinRootType) diff --git a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.191 b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.191 index 551c8d26307..834e7921dbe 100644 --- a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.191 +++ b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.191 @@ -12,16 +12,15 @@ import org.jetbrains.jps.model.java.JpsJavaExtensionService import org.jetbrains.jps.model.module.JpsModuleSourceRootType sealed class KotlinSourceRootType() : JpsElementTypeBase(), JpsModuleSourceRootType { - object Source : KotlinSourceRootType() - - object TestSource : KotlinSourceRootType() { - override fun isForTests() = true - } override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("") - companion object { - val ALL_SOURCES = setOf(Source, TestSource) - } } +object SourceKotlinRootType : KotlinSourceRootType() + +object TestSourceKotlinRootType : KotlinSourceRootType() { + override fun isForTests() = true +} + +val ALL_KOTLIN_SOURCE_ROOT_TYPES = setOf(SourceKotlinRootType, TestSourceKotlinRootType) diff --git a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.as34 b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.as34 index d6b6b689287..4e4b32e0e59 100644 --- a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.as34 +++ b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.as34 @@ -12,17 +12,20 @@ import org.jetbrains.jps.model.java.JpsJavaExtensionService import org.jetbrains.jps.model.module.JpsModuleSourceRootType sealed class KotlinSourceRootType(val isTest: Boolean) : JpsElementTypeBase(), JpsModuleSourceRootType, KotlinRootType { - object Source : KotlinSourceRootType(false) - object TestSource : KotlinSourceRootType(true) + override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("") - companion object { - val ALL_SOURCES = setOf(Source, TestSource) - } override fun isTestRoot() = isTest + fun isForTests() = isTest + override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other) } +object SourceKotlinRootType : KotlinSourceRootType(false) + +object TestSourceKotlinRootType : KotlinSourceRootType(true) + +val ALL_KOTLIN_SOURCE_ROOT_TYPES = setOf(SourceKotlinRootType, TestSourceKotlinRootType) diff --git a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.as35 b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.as35 new file mode 100644 index 00000000000..4e4b32e0e59 --- /dev/null +++ b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinSourceRootType.kt.as35 @@ -0,0 +1,31 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. 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.config + +import org.jetbrains.jps.model.ex.JpsElementTypeBase +import org.jetbrains.jps.model.java.JavaSourceRootProperties +import org.jetbrains.jps.model.java.JavaSourceRootType +import org.jetbrains.jps.model.java.JpsJavaExtensionService +import org.jetbrains.jps.model.module.JpsModuleSourceRootType + +sealed class KotlinSourceRootType(val isTest: Boolean) : JpsElementTypeBase(), JpsModuleSourceRootType, KotlinRootType { + + + override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("") + + + override fun isTestRoot() = isTest + + fun isForTests() = isTest + + override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other) +} + +object SourceKotlinRootType : KotlinSourceRootType(false) + +object TestSourceKotlinRootType : KotlinSourceRootType(true) + +val ALL_KOTLIN_SOURCE_ROOT_TYPES = setOf(SourceKotlinRootType, TestSourceKotlinRootType) diff --git a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/moduleSourceRootPropertiesSerializers.kt b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/moduleSourceRootPropertiesSerializers.kt index 77d487c457d..99c8f408a38 100644 --- a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/moduleSourceRootPropertiesSerializers.kt +++ b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/moduleSourceRootPropertiesSerializers.kt @@ -27,12 +27,12 @@ sealed class KotlinSourceRootPropertiesSerializer( typeId: String ) : JpsModuleSourceRootPropertiesSerializer(type, typeId) { object Source : KotlinSourceRootPropertiesSerializer( - KotlinSourceRootType.Source, + SourceKotlinRootType, KOTLIN_SOURCE_ROOT_TYPE_ID ) object TestSource : KotlinSourceRootPropertiesSerializer( - KotlinSourceRootType.TestSource, + TestSourceKotlinRootType, KOTLIN_TEST_ROOT_TYPE_ID ) @@ -59,12 +59,12 @@ sealed class KotlinResourceRootPropertiesSerializer( typeId: String ) : JpsModuleSourceRootPropertiesSerializer(type, typeId) { object Resource : KotlinResourceRootPropertiesSerializer( - KotlinResourceRootType.Resource, + ResourceKotlinRootType, KOTLIN_RESOURCE_ROOT_TYPE_ID ) object TestResource : KotlinResourceRootPropertiesSerializer( - KotlinResourceRootType.TestResource, - KOTLIN_TEST_RESOURCE_ROOT_TYPE_ID + TestResourceKotlinRootType, + KOTLIN_TEST_RESOURCE_ROOT_TYPE_ID ) override fun loadProperties(sourceRootTag: Element): JavaResourceRootProperties { diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt index f14bba7c484..7148fb65718 100644 --- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt @@ -331,8 +331,8 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_ .flatMap { it.goals.asSequence() } .any { it in PomFile.KotlinGoals.CompileGoals && it !in PomFile.KotlinGoals.JvmGoals } - val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.Source else JavaSourceRootType.SOURCE - val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.TestSource else JavaSourceRootType.TEST_SOURCE + val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) SourceKotlinRootType else JavaSourceRootType.SOURCE + val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) TestSourceKotlinRootType else JavaSourceRootType.TEST_SOURCE for ((type, dir) in directories) { if (rootModel.getSourceFolder(File(dir)) == null) { @@ -346,10 +346,10 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_ } if (isNonJvmModule) { - mavenProject.sources.forEach { rootModel.addSourceFolder(it, KotlinSourceRootType.Source) } - mavenProject.testSources.forEach { rootModel.addSourceFolder(it, KotlinSourceRootType.TestSource) } - mavenProject.resources.forEach { rootModel.addSourceFolder(it.directory, KotlinResourceRootType.Resource) } - mavenProject.testResources.forEach { rootModel.addSourceFolder(it.directory, KotlinResourceRootType.TestResource) } + mavenProject.sources.forEach { rootModel.addSourceFolder(it, SourceKotlinRootType) } + mavenProject.testSources.forEach { rootModel.addSourceFolder(it, TestSourceKotlinRootType) } + mavenProject.resources.forEach { rootModel.addSourceFolder(it.directory, ResourceKotlinRootType) } + mavenProject.testResources.forEach { rootModel.addSourceFolder(it.directory, TestResourceKotlinRootType) } KotlinSdkType.setUpIfNeeded() } diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt index b4d67de858c..bed8a53e2c9 100644 --- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt @@ -40,8 +40,9 @@ import org.jetbrains.idea.maven.project.MavenProjectsManager import org.jetbrains.idea.maven.utils.MavenArtifactScope import org.jetbrains.jps.model.java.JavaSourceRootType import org.jetbrains.kotlin.cli.common.arguments.CliArgumentStringBuilder.buildArgumentString -import org.jetbrains.kotlin.config.KotlinSourceRootType import org.jetbrains.kotlin.config.LanguageFeature +import org.jetbrains.kotlin.config.SourceKotlinRootType +import org.jetbrains.kotlin.config.TestSourceKotlinRootType import org.jetbrains.kotlin.idea.configuration.RepositoryDescription import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType @@ -500,9 +501,9 @@ class PomFile private constructor(private val xmlFile: XmlFile, val domModel: Ma private fun SourceFolder.isRelatedSourceRoot(isTest: Boolean): Boolean { return if (isTest) { - rootType == JavaSourceRootType.TEST_SOURCE || rootType == KotlinSourceRootType.TestSource + rootType == JavaSourceRootType.TEST_SOURCE || rootType == TestSourceKotlinRootType } else { - rootType == JavaSourceRootType.SOURCE || rootType == KotlinSourceRootType.Source + rootType == JavaSourceRootType.SOURCE || rootType == SourceKotlinRootType } } diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt index e9af9635f3e..35605ca6a8e 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt @@ -30,7 +30,7 @@ import com.intellij.psi.PsiDocumentManager import com.intellij.psi.PsiManager import com.intellij.psi.search.FileTypeIndex import org.jetbrains.jps.model.java.JavaSourceRootType -import org.jetbrains.kotlin.config.KotlinSourceRootType +import org.jetbrains.kotlin.config.SourceKotlinRootType import org.jetbrains.kotlin.idea.inspections.runInspection import org.jetbrains.kotlin.idea.maven.inspections.KotlinMavenPluginPhaseInspection import org.jetbrains.kotlin.idea.refactoring.toPsiDirectory @@ -181,7 +181,7 @@ abstract class AbstractKotlinMavenInspectionTest : MavenImportingTestCase() { val contentEntry = getContentRoots(myProject.allModules().single().name).single() val sourceFolder = contentEntry.getSourceFolders(JavaSourceRootType.SOURCE).singleOrNull() ?: - contentEntry.getSourceFolders(KotlinSourceRootType.Source).singleOrNull() + contentEntry.getSourceFolders(SourceKotlinRootType).singleOrNull() ApplicationManager.getApplication().runWriteAction { val javaFile = sourceFolder?.file?.toPsiDirectory(myProject)?.createFile("Test.java") ?: throw IllegalStateException() javaFile.viewProvider.document!!.setText("class Test {}\n") diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt index 6d605bd21d4..080ce136c2c 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt @@ -843,10 +843,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testJsCustomOutputPaths() { @@ -1315,10 +1315,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testJsDetectionByGoalWithJsStdlib() { @@ -1372,10 +1372,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testJsDetectionByGoalWithCommonStdlib() { @@ -1429,10 +1429,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testJsAndCommonStdlibKinds() { @@ -1494,10 +1494,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { assertEquals(JSLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-js") == true }.kind) assertEquals(CommonLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-common") == true }.kind) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testCommonDetectionByGoalWithJvmStdlib() { @@ -1545,10 +1545,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testCommonDetectionByGoalWithJsStdlib() { @@ -1596,10 +1596,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testCommonDetectionByGoalWithCommonStdlib() { @@ -1651,10 +1651,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testJvmDetectionByConflictingGoalsAndJvmStdlib() { @@ -1706,10 +1706,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertEquals(JvmIdePlatformKind.Platform(JvmTarget.JVM_1_6), facetSettings.platform) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testJsDetectionByConflictingGoalsAndJsStdlib() { @@ -1761,10 +1761,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertTrue(facetSettings.platform.isJavaScript) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testCommonDetectionByConflictingGoalsAndCommonStdlib() { @@ -1816,10 +1816,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertTrue(facetSettings.platform.isCommon) - assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin") - assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java") - assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources") - assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources") + assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin") + assertContentFolders("project", TestSourceKotlinRootType, "src/test/java") + assertContentFolders("project", ResourceKotlinRootType, "src/main/resources") + assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources") } fun testNoPluginsInAdditionalArgs() { diff --git a/idea/src/org/jetbrains/kotlin/idea/roots/KotlinNonJvmOrderEnumerationHandler.kt b/idea/src/org/jetbrains/kotlin/idea/roots/KotlinNonJvmOrderEnumerationHandler.kt index 8abd267e433..ab51a185735 100644 --- a/idea/src/org/jetbrains/kotlin/idea/roots/KotlinNonJvmOrderEnumerationHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/roots/KotlinNonJvmOrderEnumerationHandler.kt @@ -10,8 +10,8 @@ import com.intellij.openapi.roots.ModuleRootModel import com.intellij.openapi.roots.OrderEnumerationHandler import com.intellij.openapi.roots.OrderRootType import org.jetbrains.jps.model.module.JpsModuleSourceRootType -import org.jetbrains.kotlin.config.KotlinResourceRootType -import org.jetbrains.kotlin.config.KotlinSourceRootType +import org.jetbrains.kotlin.config.TestResourceKotlinRootType +import org.jetbrains.kotlin.config.TestSourceKotlinRootType object KotlinNonJvmOrderEnumerationHandler : OrderEnumerationHandler() { class Factory : OrderEnumerationHandler.Factory() { @@ -20,7 +20,7 @@ object KotlinNonJvmOrderEnumerationHandler : OrderEnumerationHandler() { } private val kotlinTestSourceRootTypes: Set> = - setOf(KotlinSourceRootType.TestSource, KotlinResourceRootType.TestResource) + setOf(TestSourceKotlinRootType, TestResourceKotlinRootType) override fun addCustomModuleRoots( type: OrderRootType, diff --git a/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt b/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt index cfc0f9a1874..d87b31e62f3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt @@ -20,8 +20,7 @@ import org.jetbrains.jps.model.java.JavaSourceRootProperties import org.jetbrains.jps.model.java.JavaSourceRootType import org.jetbrains.jps.model.module.JpsModuleSourceRoot import org.jetbrains.jps.model.module.JpsModuleSourceRootType -import org.jetbrains.kotlin.config.KotlinResourceRootType -import org.jetbrains.kotlin.config.KotlinSourceRootType +import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.idea.framework.KotlinSdkType private fun JpsModuleSourceRoot.getOrCreateProperties() = @@ -31,10 +30,10 @@ fun JpsModuleSourceRoot.getMigratedSourceRootTypeWithProperties(): Pair = when (currentRootType) { - JavaSourceRootType.SOURCE -> KotlinSourceRootType.Source - JavaSourceRootType.TEST_SOURCE -> KotlinSourceRootType.TestSource - JavaResourceRootType.RESOURCE -> KotlinResourceRootType.Resource - JavaResourceRootType.TEST_RESOURCE -> KotlinResourceRootType.TestResource + JavaSourceRootType.SOURCE -> SourceKotlinRootType + JavaSourceRootType.TEST_SOURCE -> TestSourceKotlinRootType + JavaResourceRootType.RESOURCE -> ResourceKotlinRootType + JavaResourceRootType.TEST_RESOURCE -> TestResourceKotlinRootType else -> return null } as JpsModuleSourceRootType return newSourceRootType to getOrCreateProperties() @@ -57,7 +56,7 @@ fun getKotlinAwareDestinationSourceRoots(project: Project): List { } private val KOTLIN_AWARE_SOURCE_ROOT_TYPES: Set> = - JavaModuleSourceRootTypes.SOURCES + KotlinSourceRootType.ALL_SOURCES + JavaModuleSourceRootTypes.SOURCES + ALL_KOTLIN_SOURCE_ROOT_TYPES private fun Module.collectKotlinAwareDestinationSourceRoots(): List { return rootManager diff --git a/idea/src/org/jetbrains/kotlin/idea/roots/ui/KotlinContentEntriesEditor.kt b/idea/src/org/jetbrains/kotlin/idea/roots/ui/KotlinContentEntriesEditor.kt index ec4fff39bb0..1cd0bf58a4b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/roots/ui/KotlinContentEntriesEditor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/roots/ui/KotlinContentEntriesEditor.kt @@ -8,19 +8,18 @@ package org.jetbrains.kotlin.idea.roots.ui import com.intellij.openapi.roots.ContentEntry import com.intellij.openapi.roots.ui.configuration.* import com.intellij.openapi.vfs.VirtualFile -import org.jetbrains.kotlin.config.KotlinResourceRootType -import org.jetbrains.kotlin.config.KotlinSourceRootType +import org.jetbrains.kotlin.config.* class KotlinContentEntriesEditor( moduleName: String, state: ModuleConfigurationState ) : CommonContentEntriesEditor( - moduleName, - state, - KotlinSourceRootType.Source, - KotlinSourceRootType.TestSource, - KotlinResourceRootType.Resource, - KotlinResourceRootType.TestResource + moduleName, + state, + SourceKotlinRootType, + TestSourceKotlinRootType, + ResourceKotlinRootType, + TestResourceKotlinRootType ) { private val javaEditor by lazy { object : JavaContentEntriesEditor(moduleName, state) { diff --git a/idea/src/org/jetbrains/kotlin/idea/roots/ui/KotlinSourceRootEditHandler.kt b/idea/src/org/jetbrains/kotlin/idea/roots/ui/KotlinSourceRootEditHandler.kt index 343d0c79b84..838675d8234 100644 --- a/idea/src/org/jetbrains/kotlin/idea/roots/ui/KotlinSourceRootEditHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/roots/ui/KotlinSourceRootEditHandler.kt @@ -10,31 +10,30 @@ import org.jetbrains.jps.model.JpsElement import org.jetbrains.jps.model.java.JavaResourceRootProperties import org.jetbrains.jps.model.java.JavaSourceRootProperties import org.jetbrains.jps.model.module.JpsModuleSourceRootType -import org.jetbrains.kotlin.config.KotlinResourceRootType -import org.jetbrains.kotlin.config.KotlinSourceRootType +import org.jetbrains.kotlin.config.* sealed class KotlinModuleSourceRootEditHandler( rootType: JpsModuleSourceRootType, private val delegate: ModuleSourceRootEditHandler ) : ModuleSourceRootEditHandler(rootType) { class Source : KotlinModuleSourceRootEditHandler( - KotlinSourceRootType.Source, - JavaModuleSourceRootEditHandler() + SourceKotlinRootType, + JavaModuleSourceRootEditHandler() ) class TestSource : KotlinModuleSourceRootEditHandler( - KotlinSourceRootType.TestSource, - JavaTestSourceRootEditHandler() + TestSourceKotlinRootType, + JavaTestSourceRootEditHandler() ) class Resource : KotlinModuleSourceRootEditHandler( - KotlinResourceRootType.Resource, - JavaResourceRootEditHandler() + ResourceKotlinRootType, + JavaResourceRootEditHandler() ) class TestResource : KotlinModuleSourceRootEditHandler( - KotlinResourceRootType.TestResource, - JavaTestResourceRootEditHandler() + TestResourceKotlinRootType, + JavaTestResourceRootEditHandler() ) override fun getUnmarkRootButtonText() = delegate.unmarkRootButtonText diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinResourcesRootProvider.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinResourcesRootProvider.kt index cd6be0fbc51..5b1aae8e5a4 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinResourcesRootProvider.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinResourcesRootProvider.kt @@ -12,7 +12,8 @@ import org.jetbrains.jps.builders.java.ResourcesTargetType import org.jetbrains.jps.builders.storage.BuildDataPaths import org.jetbrains.jps.incremental.ResourcesTarget import org.jetbrains.jps.model.java.JavaResourceRootProperties -import org.jetbrains.kotlin.config.KotlinResourceRootType +import org.jetbrains.kotlin.config.ResourceKotlinRootType +import org.jetbrains.kotlin.config.TestResourceKotlinRootType class KotlinResourcesRootProvider : AdditionalRootsProviderService(ResourcesTargetType.ALL_TYPES) { override fun getAdditionalRoots( @@ -26,7 +27,7 @@ class KotlinResourcesRootProvider : AdditionalRootsProviderService.isTestsRootType get() = when (this) { - is KotlinSourceRootType -> this == KotlinSourceRootType.TestSource - is KotlinResourceRootType -> this == KotlinResourceRootType.TestResource + is KotlinSourceRootType -> this == TestSourceKotlinRootType + is KotlinResourceRootType -> this == TestResourceKotlinRootType // for compatibility: is JavaSourceRootType -> this == JavaSourceRootType.TEST_SOURCE is JavaResourceRootType -> this == JavaResourceRootType.TEST_RESOURCE