diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIT.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIT.kt index fb1dce753c8..bf2f5f49e54 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIT.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIT.kt @@ -2,6 +2,7 @@ package org.jetbrains.kotlin.gradle import org.jetbrains.kotlin.gradle.util.allJavaFiles import org.jetbrains.kotlin.gradle.util.getFileByName +import org.jetbrains.kotlin.gradle.util.modify import org.junit.Test class KaptIT: BaseGradleIT() { @@ -180,4 +181,24 @@ class KaptIT: BaseGradleIT() { assertFileExists("build/classes/main/example/TestClassCustomized.class") } } + + @Test + fun testInternalUserIsModifiedStubsIC() { + val options = defaultBuildOptions().copy(incremental = true) + val project = Project("kaptStubs", GRADLE_VERSION) + + project.build("build", options = options) { + assertSuccessful() + } + + val internalDummyUserKt = project.projectDir.getFileByName("InternalDummyUser.kt") + internalDummyUserKt.modify { it + " " } + val internalDummyTestKt = project.projectDir.getFileByName("InternalDummyTest.kt") + internalDummyTestKt.modify { it + " " } + + project.build("build", options = options) { + assertSuccessful() + assertCompiledKotlinSources(project.relativize(internalDummyUserKt, internalDummyTestKt)) + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kaptStubs/src/main/java/foo/InternalDummy.kt b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kaptStubs/src/main/java/foo/InternalDummy.kt new file mode 100644 index 00000000000..53727c8fd38 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kaptStubs/src/main/java/foo/InternalDummy.kt @@ -0,0 +1,5 @@ +package foo + +internal class InternalDummy { + internal val x = "InternalDummy.x" +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kaptStubs/src/main/java/foo/InternalDummyUser.kt b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kaptStubs/src/main/java/foo/InternalDummyUser.kt new file mode 100644 index 00000000000..91c469098cf --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kaptStubs/src/main/java/foo/InternalDummyUser.kt @@ -0,0 +1,7 @@ +package foo + +internal class InternalDummyUser { + internal fun use(dummy: InternalDummy) { + if (dummy.x != "InternalDummy.x") throw AssertionError("dummy.x = ${dummy.x}") + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kaptStubs/src/test/java/foo/InternalDummyTest.kt b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kaptStubs/src/test/java/foo/InternalDummyTest.kt new file mode 100644 index 00000000000..bbaeb443edf --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/test/resources/testProject/kaptStubs/src/test/java/foo/InternalDummyTest.kt @@ -0,0 +1,12 @@ +package foo + +import org.junit.Test + +class InternalDummyTest { + @Test + fun testDummy() { + val dummy = InternalDummy() + val dummyUser = InternalDummyUser() + dummyUser.use(dummy) + } +} \ No newline at end of file