[CHERRY PICKED FROM IJ] Fix performance problem in KotlinTargetsIndex creation
Creation of KotlinTargetsIndex takes too long,
even if Java project doesn't have any Kotlin files.
Remove function hasJsStdLib, as it takes too much time
because of recursively checking all dependencies (migrate to facets)
Also fix tests: Add Kotlin JS facet, where its needed
#KT-34351 Fixed
Original commit: c74f471a82
GitOrigin-RevId: 94e18cd48d71e9fec8acb1987763bf1ef7485f42
Original commit: https://github.com/JetBrains/intellij-community/commit/f442fe58333bf301133b7d04ac55a143a789cf2d
This commit is contained in:
committed by
Nikita Bobko
parent
f6d9e53b66
commit
dfdbfb70dc
@@ -192,7 +192,7 @@ open class KotlinJpsBuildTest : KotlinJpsBuildTestBase() {
|
||||
}
|
||||
|
||||
fun testKotlinJavaScriptProjectWithCustomOutputPaths() {
|
||||
initProject(JS_STDLIB)
|
||||
initProject(JS_STDLIB_WITHOUT_FACET)
|
||||
buildAllModules().assertSuccessful()
|
||||
|
||||
checkOutputFilesList(File(workDir, "target"))
|
||||
@@ -243,6 +243,7 @@ open class KotlinJpsBuildTest : KotlinJpsBuildTestBase() {
|
||||
|
||||
fun testKotlinJavaScriptProjectWithDirectoryAsStdlib() {
|
||||
initProject()
|
||||
setupKotlinJSFacet()
|
||||
val jslibJar = PathUtil.kotlinPathsForDistDirectory.jsStdLibJarPath
|
||||
val jslibDir = File(workDir, "KotlinJavaScript")
|
||||
try {
|
||||
|
||||
+23
-1
@@ -11,6 +11,10 @@ import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.module.JpsModule
|
||||
import org.jetbrains.jps.util.JpsPathUtil
|
||||
import org.jetbrains.kotlin.idea.test.runAll
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.config.KotlinFacetSettings
|
||||
import org.jetbrains.kotlin.jps.model.JpsKotlinFacetModuleExtension
|
||||
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
||||
import java.io.File
|
||||
import java.nio.file.Paths
|
||||
|
||||
@@ -55,6 +59,7 @@ abstract class KotlinJpsBuildTestBase : AbstractKotlinJpsBuildTestCase() {
|
||||
NONE,
|
||||
JVM_MOCK_RUNTIME,
|
||||
JVM_FULL_RUNTIME,
|
||||
JS_STDLIB_WITHOUT_FACET,
|
||||
JS_STDLIB,
|
||||
}
|
||||
|
||||
@@ -66,7 +71,24 @@ abstract class KotlinJpsBuildTestBase : AbstractKotlinJpsBuildTestCase() {
|
||||
LibraryDependency.NONE -> {}
|
||||
LibraryDependency.JVM_MOCK_RUNTIME -> addKotlinMockRuntimeDependency()
|
||||
LibraryDependency.JVM_FULL_RUNTIME -> addKotlinStdlibDependency()
|
||||
LibraryDependency.JS_STDLIB -> addKotlinJavaScriptStdlibDependency()
|
||||
LibraryDependency.JS_STDLIB_WITHOUT_FACET -> addKotlinJavaScriptStdlibDependency()
|
||||
LibraryDependency.JS_STDLIB -> {
|
||||
addKotlinJavaScriptStdlibDependency()
|
||||
setupKotlinJSFacet()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected fun setupKotlinJSFacet() {
|
||||
myProject.modules.forEach {
|
||||
val facet = KotlinFacetSettings()
|
||||
facet.compilerArguments = K2JSCompilerArguments()
|
||||
facet.targetPlatform = JsPlatforms.defaultJsPlatform
|
||||
|
||||
it.container.setChild(
|
||||
JpsKotlinFacetModuleExtension.KIND,
|
||||
JpsKotlinFacetModuleExtension(facet)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user