Fix warnings in Kotlin JPS plugin (which are errors, actually, because of -Werror)

This commit is contained in:
Nikita Bobko
2021-12-23 17:04:56 +01:00
parent 3b3a7f4566
commit 01df50e175
6 changed files with 31 additions and 11 deletions
@@ -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)
@@ -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 "<root>" } + name
}.joinToString(separator = " ", prefix = "/*", postfix = "*/")
@@ -355,7 +355,7 @@ abstract class AbstractLookupTrackerTest : TestWithWorkingDir() {
class TestLookupTracker : LookupTracker {
val lookups = arrayListOf<LookupInfo>()
private val interner = StringInterner()
private val interner = Interner.createStringInterner<String>()
override val requiresPosition: Boolean
get() = true
@@ -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<TestCase>
@@ -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")
}
@@ -97,7 +97,7 @@ object CompilerRunnerUtil {
Class.forName("org.jetbrains.kotlin.config.Services", true, classLoader),
Array<String>::class.java
)
exec.invoke(compiler.newInstance(), out, environment.services, arguments)
exec.invoke(compiler.getDeclaredConstructor().newInstance(), out, environment.services, arguments)
}
fun invokeClassesFqNames(
@@ -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<BuildTarget<*>> {
fun BuildTargetIndex.collectDependenciesRecursively(
target: BuildTarget<*>,
result: java.util.LinkedHashSet<in BuildTarget<*>>
) {
if (result.add(target)) {
for (dep in getDependencies(target, context)) {
collectDependenciesRecursively(dep, result)
}
}
}
val result = LinkedHashSet<BuildTarget<*>>()
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)
@@ -132,7 +132,6 @@ abstract class KotlinModuleBuildTarget<BuildMetaInfoType : BuildMetaInfo> 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<BuildMetaInfoType : BuildMetaInfo> 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