diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt index b0d03c8d7e5..759a33d7560 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt @@ -282,7 +282,7 @@ abstract class AbstractIncrementalJpsTest( } if (!makeOverallResult.makeFailed) { - if (checkDumpsCaseInsensitively && rebuildResult.mappingsDump?.toLowerCase() == makeOverallResult.mappingsDump?.toLowerCase()) { + if (checkDumpsCaseInsensitively && rebuildResult.mappingsDump.equals(makeOverallResult.mappingsDump, ignoreCase = true)) { // do nothing } else { TestCase.assertEquals(rebuildResult.mappingsDump, makeOverallResult.mappingsDump) diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt index c48596fc51a..78a5f496ba2 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/AbstractLookupTrackerTest.kt @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.jps.build import com.intellij.testFramework.RunAll import com.intellij.testFramework.UsefulTestCase import com.intellij.util.ThrowableRunnable -import com.intellij.util.containers.StringInterner +import com.intellij.util.containers.Interner import org.jetbrains.kotlin.TestWithWorkingDir import org.jetbrains.kotlin.build.JvmSourceRoot import org.jetbrains.kotlin.cli.common.ExitCode @@ -336,7 +336,7 @@ abstract class AbstractLookupTrackerTest : TestWithWorkingDir() { else -> "(" + it.name + ")" } - it.scopeKind.toString()[0].toLowerCase() + it.scopeKind.toString()[0].lowercaseChar() .toString() + ":" + it.scopeFqName.let { if (it.isNotEmpty()) it else "" } + name }.joinToString(separator = " ", prefix = "/*", postfix = "*/") @@ -355,7 +355,7 @@ abstract class AbstractLookupTrackerTest : TestWithWorkingDir() { class TestLookupTracker : LookupTracker { val lookups = arrayListOf() - private val interner = StringInterner() + private val interner = Interner.createStringInterner() override val requiresPosition: Boolean get() = true diff --git a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/dependeciestxt/MppJpsIncTestsGenerator.kt b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/dependeciestxt/MppJpsIncTestsGenerator.kt index 36700d219e4..4d70f73a4e2 100644 --- a/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/dependeciestxt/MppJpsIncTestsGenerator.kt +++ b/jps/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/dependeciestxt/MppJpsIncTestsGenerator.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.jps.build.dependeciestxt import java.io.File +import java.util.* /** * Utility for generating common/platform module stub contents based on it's dependencies. @@ -29,7 +30,7 @@ fun actualizeMppJpsIncTestCaseDirs(rootDir: String, dir: String) { } class MppJpsIncTestsGenerator(val txt: ModulesTxt, val testCaseDirProvider: (TestCase) -> File) { - val ModulesTxt.Module.capitalName get() = name.capitalize() + val ModulesTxt.Module.capitalName get() = name.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } val testCases: List @@ -308,7 +309,7 @@ class MppJpsIncTestsGenerator(val txt: ModulesTxt, val testCaseDirProvider: (Tes protected fun serviceKtFile(module: ModulesTxt.Module, fileNameSuffix: String = ""): File { val suffix = if (module.isCommonModule) "${module.serviceName}Header" - else "${module.name.capitalize()}${module.contentsSettings.serviceNameSuffix}Impl" + else "${module.name.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }}${module.contentsSettings.serviceNameSuffix}Impl" return File(dir, "${module.indexedName}_service$suffix.kt$fileNameSuffix") } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/CompilerRunnerUtil.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/CompilerRunnerUtil.kt index 1a450dff21b..c9b40c80609 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/CompilerRunnerUtil.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/CompilerRunnerUtil.kt @@ -97,7 +97,7 @@ object CompilerRunnerUtil { Class.forName("org.jetbrains.kotlin.config.Services", true, classLoader), Array::class.java ) - exec.invoke(compiler.newInstance(), out, environment.services, arguments) + exec.invoke(compiler.getDeclaredConstructor().newInstance(), out, environment.services, arguments) } fun invokeClassesFqNames( diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/FSOperationsHelper.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/FSOperationsHelper.kt index d38aebdc087..faab91cf09d 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/FSOperationsHelper.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/FSOperationsHelper.kt @@ -21,6 +21,7 @@ import com.intellij.util.containers.ContainerUtil import org.jetbrains.jps.ModuleChunk import org.jetbrains.jps.builders.BuildRootDescriptor import org.jetbrains.jps.builders.BuildTarget +import org.jetbrains.jps.builders.BuildTargetIndex import org.jetbrains.jps.builders.FileProcessor import org.jetbrains.jps.builders.impl.DirtyFilesHolderBase import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor @@ -31,7 +32,6 @@ import org.jetbrains.jps.incremental.FSOperations import org.jetbrains.jps.incremental.ModuleBuildTarget import org.jetbrains.jps.incremental.fs.CompilationRound import java.io.File -import java.util.HashMap import kotlin.collections.* /** @@ -156,10 +156,30 @@ class FSOperationsHelper( val target = rd.target if (target in chunkTargets) return true - val targetOfFileWithDependencies = cache.getOrPut(target) { buildTargetIndex.getDependenciesRecursively(target, context) } + val targetOfFileWithDependencies = cache.getOrPut(target) { buildTargetIndex.myGetDependenciesRecursively(target, context) } return ContainerUtil.intersects(targetOfFileWithDependencies, chunkTargets) } + // Copy-pasted from Intellij's deprecated method org.jetbrains.jps.builders.impl.BuildTargetIndexImpl.getDependenciesRecursively + private fun BuildTargetIndex.myGetDependenciesRecursively(target: BuildTarget<*>, context: CompileContext): Set> { + fun BuildTargetIndex.collectDependenciesRecursively( + target: BuildTarget<*>, + result: java.util.LinkedHashSet> + ) { + if (result.add(target)) { + for (dep in getDependencies(target, context)) { + collectDependenciesRecursively(dep, result) + } + } + } + + val result = LinkedHashSet>() + for (dep in getDependencies(target, context)) { + collectDependenciesRecursively(dep, result) + } + return result + } + override fun belongsToCurrentTargetChunk(file: File): Boolean { val rd = buildRootIndex.findJavaRootDescriptor(context, file) return rd != null && chunkTargets.contains(rd.target) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinModuleBuildTarget.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinModuleBuildTarget.kt index af36608fcab..fe440e98d21 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinModuleBuildTarget.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/targets/KotlinModuleBuildTarget.kt @@ -132,7 +132,6 @@ abstract class KotlinModuleBuildTarget intern ) // TODO(1.2.80): try replace allDependencies with KotlinChunk.collectDependentChunksRecursivelyExportedOnly - @Deprecated("Consider using precalculated KotlinChunk.collectDependentChunksRecursivelyExportedOnly") val allDependencies by lazy { JpsJavaExtensionService.dependencies(module).recursively().exportedOnly() .includedIn(JpsJavaClasspathKind.compile(isTests)) @@ -166,7 +165,7 @@ abstract class KotlinModuleBuildTarget intern val moduleExcludes = module.excludeRootsList.urls.mapTo(java.util.HashSet(), JpsPathUtil::urlToFile) val compilerExcludes = JpsJavaExtensionService.getInstance() - .getOrCreateCompilerConfiguration(module.project) + .getCompilerConfiguration(module.project) .compilerExcludes val buildRootIndex = localContext.projectDescriptor.buildRootIndex