From 3aade8ad95a220b189843d92eaa1d5c5824282f1 Mon Sep 17 00:00:00 2001 From: "nataliya.valtman" Date: Wed, 18 Jan 2023 18:33:39 +0100 Subject: [PATCH] Mark removed source file as deleted for compiler #KT-55905 Fixed --- .../incremental/IncrementalCompilerRunner.kt | 2 +- .../IncrementalCompilationMultiProjectIT.kt | 19 +++++++++++++++++++ .../external/src/external.kt | 5 +++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/incrementalMultiproject/external/src/external.kt 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 c90e1ff8b9d..2413ab6a291 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 @@ -469,7 +469,7 @@ abstract class IncrementalCompilerRunner< val lookupTracker = LookupTrackerImpl(LookupTracker.DO_NOTHING) val expectActualTracker = ExpectActualTrackerImpl() //TODO(valtman) sourceToCompile calculate based on abiSnapshot - val (sourcesToCompile, removedKotlinSources) = dirtySources.partition(File::exists) + val (sourcesToCompile, removedKotlinSources) = dirtySources.partition { it.exists() && allKotlinSources.contains(it) } val services = makeServices( args, lookupTracker, expectActualTracker, caches, diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/IncrementalCompilationMultiProjectIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/IncrementalCompilationMultiProjectIT.kt index 5d03918840f..5771083a8f9 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/IncrementalCompilationMultiProjectIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/IncrementalCompilationMultiProjectIT.kt @@ -6,6 +6,7 @@ import org.jetbrains.kotlin.build.report.metrics.BuildAttribute import org.jetbrains.kotlin.gradle.tasks.KotlinCompilerExecutionStrategy import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.util.checkedReplace +import org.jetbrains.kotlin.gradle.util.replaceText import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.DisplayName import java.nio.file.Path @@ -200,6 +201,24 @@ open class IncrementalCompilationJvmMultiProjectIT : BaseIncrementalCompilationM } } + //KT-55905 + @DisplayName("Imncremental compilation with source set update") + @GradleTest + open fun testSourceSetAdjustment(gradleVersion: GradleVersion) { + val setUpExternalSource = "sourceSets[\"main\"].kotlin.srcDir(\"../external/src\")" + defaultProject(gradleVersion) { + subProject("lib").buildGradle.appendText("\n$setUpExternalSource") + subProject("lib") + .projectPath + .resolve("src/main/kotlin/bar/A.kt").modify { + it.replace("fun a() {}","fun a() {}\nfun c() = ExternalClass()" ) + } + build("assemble") + subProject("lib").buildGradle.replaceText(setUpExternalSource, "") + buildAndFail("assemble") + } + } + protected fun testCompileLibWithGroovy_doTest( gradleVersion: GradleVersion, assertResults: (TestProject, BuildResult) -> Unit diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/incrementalMultiproject/external/src/external.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/incrementalMultiproject/external/src/external.kt new file mode 100644 index 00000000000..9765df50b26 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/incrementalMultiproject/external/src/external.kt @@ -0,0 +1,5 @@ +package bar + +open class ExternalClass { + fun some() {} +} \ No newline at end of file