diff --git a/build-common/src/org/jetbrains/kotlin/build/sourcesUtils.kt b/build-common/src/org/jetbrains/kotlin/build/sourcesUtils.kt index aeb1980fdc1..d39e534f7c1 100644 --- a/build-common/src/org/jetbrains/kotlin/build/sourcesUtils.kt +++ b/build-common/src/org/jetbrains/kotlin/build/sourcesUtils.kt @@ -5,5 +5,5 @@ package org.jetbrains.kotlin.build -val DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS = listOf("kt", "kts") +val DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS = setOf("kt", "kts") diff --git a/build-common/src/org/jetbrains/kotlin/incremental/fileUtils.kt b/build-common/src/org/jetbrains/kotlin/incremental/fileUtils.kt index edbe1660827..0ba2e56cf7b 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/fileUtils.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/fileUtils.kt @@ -22,7 +22,7 @@ import java.io.IOException fun File.isJavaFile() = extension.equals("java", ignoreCase = true) -fun File.isKotlinFile(sourceFilesExtensions: List): Boolean = +fun File.isKotlinFile(sourceFilesExtensions: Collection): Boolean = !isJavaFile() && sourceFilesExtensions.any { it.equals(extension, ignoreCase = true) } fun File.isClassFile(): Boolean = diff --git a/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/CompilationServiceImpl.kt b/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/CompilationServiceImpl.kt index c17cda7c60f..e97b1e5a8e6 100644 --- a/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/CompilationServiceImpl.kt +++ b/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/CompilationServiceImpl.kt @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.buildtools.internal +import org.jetbrains.kotlin.build.DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS +import org.jetbrains.kotlin.build.report.DoNothingBuildReporter import org.jetbrains.kotlin.build.report.metrics.DoNothingBuildMetricsReporter import org.jetbrains.kotlin.buildtools.api.* import org.jetbrains.kotlin.buildtools.api.jvm.* @@ -21,7 +23,12 @@ import org.jetbrains.kotlin.daemon.client.BasicCompilerServicesWithResultsFacade import org.jetbrains.kotlin.daemon.common.CompilerId import org.jetbrains.kotlin.daemon.common.configureDaemonJVMOptions import org.jetbrains.kotlin.daemon.common.filterExtractProps +import org.jetbrains.kotlin.incremental.ClasspathChanges +import org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner import org.jetbrains.kotlin.incremental.classpathDiff.ClasspathEntrySnapshotter +import org.jetbrains.kotlin.incremental.extractKotlinSourcesFromFreeCompilerArguments +import org.jetbrains.kotlin.incremental.multiproject.EmptyModulesApiHistory +import org.jetbrains.kotlin.incremental.storage.FileLocations import org.jetbrains.kotlin.scripting.compiler.plugin.impl.reporter import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource import java.io.File @@ -32,7 +39,7 @@ import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration private val ExitCode.asCompilationResult get() = when (this) { ExitCode.OK -> CompilationResult.COMPILATION_SUCCESS - ExitCode.COMPILATION_ERROR -> CompilationResult.COMPILER_INTERNAL_ERROR + ExitCode.COMPILATION_ERROR -> CompilationResult.COMPILATION_ERROR ExitCode.INTERNAL_ERROR -> CompilationResult.COMPILER_INTERNAL_ERROR ExitCode.OOM_ERROR -> CompilationResult.COMPILATION_OOM_ERROR else -> error("Unexpected exit code: $this") @@ -55,7 +62,7 @@ internal object CompilationServiceImpl : CompilationService { strategyConfig: CompilerExecutionStrategyConfiguration, compilationConfig: JvmCompilationConfiguration, sources: List, - arguments: List + arguments: List, ): CompilationResult { check(strategyConfig is CompilerExecutionStrategyConfigurationImpl) { "Initial strategy configuration object must be acquired from the `makeCompilerExecutionStrategyConfiguration` method." @@ -65,7 +72,7 @@ internal object CompilationServiceImpl : CompilationService { } val loggerAdapter = KotlinLoggerMessageCollectorAdapter(compilationConfig.logger) return when (val selectedStrategy = strategyConfig.selectedStrategy) { - is CompilerExecutionStrategy.InProcess -> compileInProcess(loggerAdapter, sources, arguments) + is CompilerExecutionStrategy.InProcess -> compileInProcess(loggerAdapter, compilationConfig, sources, arguments) is CompilerExecutionStrategy.Daemon -> compileWithinDaemon( projectId, loggerAdapter, @@ -94,8 +101,9 @@ internal object CompilationServiceImpl : CompilationService { private fun compileInProcess( loggerAdapter: KotlinLoggerMessageCollectorAdapter, + compilationConfiguration: JvmCompilationConfigurationImpl, sources: List, - arguments: List + arguments: List, ): CompilationResult { val compiler = K2JVMCompiler() val parsedArguments = compiler.createArguments() @@ -103,9 +111,47 @@ internal object CompilationServiceImpl : CompilationService { validateArguments(parsedArguments.errors)?.let { throw CompilerArgumentsParseException(it) } - parsedArguments.freeArgs += sources.map { it.absolutePath } // TODO: they're not explicitly passed yet loggerAdapter.report(CompilerMessageSeverity.INFO, arguments.toString()) - return compiler.exec(loggerAdapter, Services.EMPTY, parsedArguments).asCompilationResult + val aggregatedIcConfiguration = compilationConfiguration.aggregatedIcConfiguration + return when (val options = aggregatedIcConfiguration?.options) { + is ClasspathSnapshotBasedIncrementalJvmCompilationConfigurationImpl -> { + val kotlinFilenameExtensions = + (DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS + compilationConfiguration.kotlinScriptFilenameExtensions) + + @Suppress("DEPRECATION") // TODO: get rid of that parsing KT-62759 + val kotlinSources = extractKotlinSourcesFromFreeCompilerArguments(parsedArguments, kotlinFilenameExtensions) + sources + + @Suppress("UNCHECKED_CAST") + val classpathChanges = + (aggregatedIcConfiguration as AggregatedIcConfiguration).classpathChanges + val incrementalCompiler = IncrementalJvmCompilerRunner( + aggregatedIcConfiguration.workingDir, + DoNothingBuildReporter, + buildHistoryFile = null, + modulesApiHistory = EmptyModulesApiHistory, + usePreciseJavaTracking = options.preciseJavaTrackingEnabled, + outputDirs = options.outputDirs, + kotlinSourceFilesExtensions = kotlinFilenameExtensions, + classpathChanges = classpathChanges, + withAbiSnapshot = false, + preciseCompilationResultsBackup = options.preciseCompilationResultsBackupEnabled, + keepIncrementalCompilationCachesInMemory = options.incrementalCompilationCachesKeptInMemory + ) + val rootProjectDir = options.rootProjectDir + val buildDir = options.buildDir + parsedArguments.incrementalCompilation = true + incrementalCompiler.compile( + kotlinSources, parsedArguments, loggerAdapter, aggregatedIcConfiguration.sourcesChanges.asChangedFiles, + fileLocations = if (rootProjectDir != null && buildDir != null) { + FileLocations(rootProjectDir, buildDir) + } else null + ).asCompilationResult + } + else -> { + parsedArguments.freeArgs += sources.map { it.absolutePath } + compiler.exec(loggerAdapter, Services.EMPTY, parsedArguments).asCompilationResult + } + } } private fun compileWithinDaemon( @@ -114,7 +160,7 @@ internal object CompilationServiceImpl : CompilationService { daemonConfiguration: CompilerExecutionStrategy.Daemon, compilationConfiguration: JvmCompilationConfigurationImpl, sources: List, - arguments: List + arguments: List, ): CompilationResult { val compilerId = CompilerId.makeCompilerId(getCurrentClasspath()) val sessionIsAliveFlagFile = buildIdToSessionFlagFile.computeIfAbsent(projectId) { @@ -144,7 +190,7 @@ internal object CompilationServiceImpl : CompilationService { val daemonCompileOptions = compilationConfiguration.asDaemonCompilationOptions val exitCode = daemon.compile( sessionId, - arguments.toTypedArray() + sources.map { it.absolutePath }, // TODO: the sources not explicitly passed yet + arguments.toTypedArray() + sources.map { it.absolutePath }, // TODO: pass the sources explicitly KT-62759 daemonCompileOptions, BasicCompilerServicesWithResultsFacadeServer(loggerAdapter), DaemonCompilationResults() diff --git a/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/daemonAdapters.kt b/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/daemonAdapters.kt index 2618557d36e..230f8c4784a 100644 --- a/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/daemonAdapters.kt +++ b/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/daemonAdapters.kt @@ -25,27 +25,15 @@ internal val JvmCompilationConfigurationImpl.asDaemonCompilationOptions: Compila return when (val options = aggregatedIcConfiguration?.options) { is ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration -> { val sourcesChanges = aggregatedIcConfiguration.sourcesChanges - val params = aggregatedIcConfiguration.parameters as ClasspathSnapshotBasedIncrementalCompilationApproachParameters - val snapshotFiles = - ClasspathSnapshotFiles(params.newClasspathSnapshotFiles, params.shrunkClasspathSnapshot.parentFile) + + @Suppress("UNCHECKED_CAST") + val classpathChanges = + (aggregatedIcConfiguration as AggregatedIcConfiguration).classpathChanges IncrementalCompilationOptions( areFileChangesKnown = sourcesChanges is SourcesChanges.Known, modifiedFiles = if (sourcesChanges is SourcesChanges.Known) sourcesChanges.modifiedFiles else null, deletedFiles = if (sourcesChanges is SourcesChanges.Known) sourcesChanges.removedFiles else null, - classpathChanges = when { - !params.shrunkClasspathSnapshot.exists() -> ClasspathChanges.ClasspathSnapshotEnabled.NotAvailableDueToMissingClasspathSnapshot( - snapshotFiles - ) - options.forcedNonIncrementalMode -> ClasspathChanges.ClasspathSnapshotEnabled.NotAvailableForNonIncrementalRun( - snapshotFiles - ) - options.assuredNoClasspathSnapshotsChanges -> ClasspathChanges.ClasspathSnapshotEnabled.IncrementalRun.NoChanges( - snapshotFiles - ) - else -> { - ClasspathChanges.ClasspathSnapshotEnabled.IncrementalRun.ToBeComputedByIncrementalCompiler(snapshotFiles) - } - }, + classpathChanges = classpathChanges, workingDir = aggregatedIcConfiguration.workingDir, compilerMode = CompilerMode.INCREMENTAL_COMPILER, targetPlatform = CompileService.TargetPlatform.JVM, diff --git a/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/icAdapters.kt b/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/icAdapters.kt new file mode 100644 index 00000000000..0a2987e9c21 --- /dev/null +++ b/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/icAdapters.kt @@ -0,0 +1,43 @@ +/* + * Copyright 2010-2023 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.buildtools.internal + +import org.jetbrains.kotlin.buildtools.api.SourcesChanges +import org.jetbrains.kotlin.buildtools.api.jvm.ClasspathSnapshotBasedIncrementalCompilationApproachParameters +import org.jetbrains.kotlin.buildtools.api.jvm.ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration +import org.jetbrains.kotlin.incremental.ChangedFiles +import org.jetbrains.kotlin.incremental.ClasspathChanges +import org.jetbrains.kotlin.incremental.ClasspathSnapshotFiles + +internal val SourcesChanges.asChangedFiles + get() = when (this) { + is SourcesChanges.Known -> ChangedFiles.Known(modifiedFiles, removedFiles) + is SourcesChanges.ToBeCalculated -> ChangedFiles.Unknown() // TODO: add proper support for SourcesChanges.ToBeCalculated + is SourcesChanges.Unknown -> ChangedFiles.Unknown() + } + +internal val AggregatedIcConfiguration.classpathChanges: ClasspathChanges.ClasspathSnapshotEnabled + get() { + check(options is ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration) { + "options expected to be an instance of ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration" + } + val params = parameters + val snapshotFiles = ClasspathSnapshotFiles(params.newClasspathSnapshotFiles, params.shrunkClasspathSnapshot.parentFile) + return when { + !params.shrunkClasspathSnapshot.exists() -> ClasspathChanges.ClasspathSnapshotEnabled.NotAvailableDueToMissingClasspathSnapshot( + snapshotFiles + ) + options.forcedNonIncrementalMode -> ClasspathChanges.ClasspathSnapshotEnabled.NotAvailableForNonIncrementalRun( + snapshotFiles + ) + options.assuredNoClasspathSnapshotsChanges -> ClasspathChanges.ClasspathSnapshotEnabled.IncrementalRun.NoChanges( + snapshotFiles + ) + else -> { + ClasspathChanges.ClasspathSnapshotEnabled.IncrementalRun.ToBeComputedByIncrementalCompiler(snapshotFiles) + } + } + } \ No newline at end of file diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt index 24f9f924465..184b7437623 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt @@ -539,16 +539,8 @@ abstract class CompileServiceImplBase( reporter: RemoteBuildReporter ): ExitCode { reporter.startMeasureGc() - val allKotlinFiles = arrayListOf() - val freeArgsWithoutKotlinFiles = arrayListOf() - args.freeArgs.forEach { - if (it.endsWith(".kt") && File(it).exists()) { - allKotlinFiles.add(File(it)) - } else { - freeArgsWithoutKotlinFiles.add(it) - } - } - args.freeArgs = freeArgsWithoutKotlinFiles + @Suppress("DEPRECATION") // TODO: get rid of that parsing KT-62759 + val allKotlinFiles = extractKotlinSourcesFromFreeCompilerArguments(args, setOf("kt")) val changedFiles = if (incrementalCompilationOptions.areFileChangesKnown) { ChangedFiles.Known(incrementalCompilationOptions.modifiedFiles!!, incrementalCompilationOptions.deletedFiles!!) @@ -591,19 +583,10 @@ abstract class CompileServiceImplBase( ): ExitCode { reporter.startMeasureGc() val allKotlinExtensions = (DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS + - (incrementalCompilationOptions.kotlinScriptExtensions ?: emptyArray())).distinct() - val dotExtensions = allKotlinExtensions.map { ".$it" } - val freeArgs = arrayListOf() - val allKotlinFiles = arrayListOf() - for (arg in k2jvmArgs.freeArgs) { - val file = File(arg) - if (file.isFile && dotExtensions.any { ext -> file.path.endsWith(ext, ignoreCase = true) }) { - allKotlinFiles.add(file) - } else { - freeArgs.add(arg) - } - } - k2jvmArgs.freeArgs = freeArgs + (incrementalCompilationOptions.kotlinScriptExtensions ?: emptyArray())).toSet() + + @Suppress("DEPRECATION") // TODO: get rid of that parsing KT-62759 + val allKotlinFiles = extractKotlinSourcesFromFreeCompilerArguments(k2jvmArgs, allKotlinExtensions) val changedFiles = if (incrementalCompilationOptions.areFileChangesKnown) { ChangedFiles.Known(incrementalCompilationOptions.modifiedFiles!!, incrementalCompilationOptions.deletedFiles!!) diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/DirtyFilesContainer.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/DirtyFilesContainer.kt index 3636697c697..5c12fa828b9 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/DirtyFilesContainer.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/DirtyFilesContainer.kt @@ -12,7 +12,7 @@ import java.io.File class DirtyFilesContainer( private val caches: IncrementalCachesManager<*>, private val reporter: ICReporter, - private val sourceFilesExtensions: List + private val sourceFilesExtensions: Set ) { private val myDirtyFiles = HashSet() diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt index b103f91d4f3..79bab3217ad 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt @@ -81,7 +81,7 @@ abstract class IncrementalCompilerRunner< private val dirtySourcesSinceLastTimeFile = File(workingDir, DIRTY_SOURCES_FILE_NAME) protected val lastBuildInfoFile = File(workingDir, LAST_BUILD_INFO_FILE_NAME) private val abiSnapshotFile = File(workingDir, ABI_SNAPSHOT_FILE_NAME) - protected open val kotlinSourceFilesExtensions: List = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS + protected open val kotlinSourceFilesExtensions: Set = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS /** * Creates an instance of [IncrementalCompilationContext] that holds common incremental compilation context mostly required for [CacheManager] @@ -663,3 +663,23 @@ abstract class IncrementalCompilerRunner< } } } + +@Deprecated("Temporary function to reuse the logic. KT-62759") +fun extractKotlinSourcesFromFreeCompilerArguments( + compilerArguments: CommonCompilerArguments, + kotlinFilenameExtensions: Set, +): List { + val dotExtensions = kotlinFilenameExtensions.map { ".$it" } + val freeArgs = arrayListOf() + val allKotlinFiles = arrayListOf() + for (arg in compilerArguments.freeArgs) { + val file = File(arg) + if (file.isFile && dotExtensions.any { ext -> file.path.endsWith(ext, ignoreCase = true) }) { + allKotlinFiles.add(file) + } else { + freeArgs.add(arg) + } + } + compilerArguments.freeArgs = freeArgs + return allKotlinFiles +} \ No newline at end of file diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt index f3cb16c06e2..c8a9731b137 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerRunner.kt @@ -64,7 +64,7 @@ open class IncrementalFirJvmCompilerRunner( buildHistoryFile: File?, outputDirs: Collection?, modulesApiHistory: ModulesApiHistory, - kotlinSourceFilesExtensions: List = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS, + kotlinSourceFilesExtensions: Set = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS, classpathChanges: ClasspathChanges ) : IncrementalJvmCompilerRunner( workingDir, diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt index 8665ff464b5..b3686e8f3b3 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt @@ -66,7 +66,7 @@ open class IncrementalJvmCompilerRunner( buildHistoryFile: File?, outputDirs: Collection?, private val modulesApiHistory: ModulesApiHistory, - override val kotlinSourceFilesExtensions: List = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS, + override val kotlinSourceFilesExtensions: Set = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS, private val classpathChanges: ClasspathChanges, withAbiSnapshot: Boolean = false, preciseCompilationResultsBackup: Boolean = false, diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerTestRunner.kt b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerTestRunner.kt index 22733251be6..ef0027499c3 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerTestRunner.kt +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalFirJvmCompilerTestRunner.kt @@ -18,7 +18,7 @@ class IncrementalFirJvmCompilerTestRunner( buildHistoryFile: File, outputDirs: Collection?, modulesApiHistory: ModulesApiHistory, - kotlinSourceFilesExtensions: List = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS, + kotlinSourceFilesExtensions: Set = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS, classpathChanges: ClasspathChanges, val testLookupTracker: TestLookupTracker ) : IncrementalFirJvmCompilerRunner( diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerTestRunner.kt b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerTestRunner.kt index 6d82297355b..bbba3092f0a 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerTestRunner.kt +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerTestRunner.kt @@ -19,7 +19,7 @@ class IncrementalJvmCompilerTestRunner( buildHistoryFile: File, outputDirs: Collection?, modulesApiHistory: ModulesApiHistory, - override val kotlinSourceFilesExtensions: List = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS, + override val kotlinSourceFilesExtensions: Set = DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS, classpathChanges: ClasspathChanges, withAbiSnapshot: Boolean = false, val testLookupTracker: TestLookupTracker 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 7120e138214..fa3bc22bf32 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 @@ -232,7 +232,7 @@ abstract class AbstractLookupTrackerTest : TestWithWorkingDir() { val testDir = File(path) val workToOriginalFileMap = HashMap(copyTestSources(testDir, srcDir, filePrefix = "")) - var dirtyFiles = srcDir.walk().filterTo(HashSet()) { it.isKotlinFile(listOf("kt", "kts")) } + var dirtyFiles = srcDir.walk().filterTo(HashSet()) { it.isKotlinFile(setOf("kt", "kts")) } val steps = getModificationsToPerform( testDir, moduleNames = null, diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildToolsApiJvmCompilationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildToolsApiJvmCompilationIT.kt index 60476ed6e07..af9454d8519 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildToolsApiJvmCompilationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildToolsApiJvmCompilationIT.kt @@ -9,10 +9,9 @@ import org.gradle.testkit.runner.BuildResult import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.internals.asFinishLogMessage import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics -import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.tasks.KotlinCompilerExecutionStrategy import org.jetbrains.kotlin.gradle.tasks.USING_JVM_INCREMENTAL_COMPILATION_MESSAGE -import org.junit.jupiter.api.Disabled +import org.jetbrains.kotlin.gradle.testbase.* import org.junit.jupiter.api.DisplayName @DisplayName("JVM compilation via the Build Tools API") @@ -69,12 +68,11 @@ class BuildToolsApiJvmCompilationIT : KGPBaseTest() { } @GradleTest - @Disabled @DisplayName("Simple project incremental in-process compilation") fun compileJvmInProcessIncremental(gradleVersion: GradleVersion) = testSimpleProject( gradleVersion, defaultBuildOptions.copy( compilerExecutionStrategy = KotlinCompilerExecutionStrategy.IN_PROCESS, - incremental = false, + incremental = true, ) ) { assertOutputContains(KotlinCompilerExecutionStrategy.IN_PROCESS.asFinishLogMessage)