diff --git a/build-common/test/org/jetbrains/kotlin/incremental/testingUtils/incrementalModificationUtils.kt b/build-common/test/org/jetbrains/kotlin/incremental/testingUtils/incrementalModificationUtils.kt index 9ce77a6df21..82897c8e116 100644 --- a/build-common/test/org/jetbrains/kotlin/incremental/testingUtils/incrementalModificationUtils.kt +++ b/build-common/test/org/jetbrains/kotlin/incremental/testingUtils/incrementalModificationUtils.kt @@ -35,7 +35,22 @@ fun copyTestSources(testDataDir: File, sourceDestinationDir: File, filePrefix: S it.isDirectory || it.name.startsWith(filePrefix) && (it.name.endsWith(".kt") || it.name.endsWith(".java")) } - sourceDestinationDir.walk().forEach { mapping[it] = File(testDataDir, filePrefix + it.name) } + for (file in sourceDestinationDir.walk()) { + if (!file.isFile) continue + + val renamedFile = + if (filePrefix.isEmpty()) { + file + } + else { + File(sourceDestinationDir, file.name.removePrefix(filePrefix)).apply { + file.renameTo(this) + } + } + + mapping[renamedFile] = File(testDataDir, file.name) + } + return mapping } @@ -48,7 +63,7 @@ fun getModificationsToPerform( fun getModificationsForIteration(newSuffix: String, touchSuffix: String, deleteSuffix: String): List { - fun getDirPrefix(fileName: String): String { + fun splitToModuleNameAndFileName(fileName: String): Pair { val underscore = fileName.indexOf("_") if (underscore != -1) { @@ -57,32 +72,38 @@ fun getModificationsToPerform( assert(moduleNames != null) { "File name has module prefix, but multi-module environment is absent" } assert(module in moduleNames!!) { "Module not found for file with prefix: $fileName" } - return "$module/src" + return Pair(module, fileName.substring(underscore + 1)) } assert(moduleNames == null) { "Test is multi-module, but file has no module prefix: $fileName" } - return "src" + return Pair(null, fileName) } + val rules = mapOf Modification>( + newSuffix to { path, file -> ModifyContent(path, file) }, + touchSuffix to { path, file -> TouchFile(path, touchPolicy) }, + deleteSuffix to { path, file -> DeleteFile(path) } + ) + val modifications = ArrayList() - for (file in testDataDir.listFiles()!!) { - val fileName = file.name - if (fileName.endsWith(newSuffix)) { - modifications.add(ModifyContent(getDirPrefix(fileName) + "/" + fileName.removeSuffix(newSuffix), file)) - } - if (fileName.endsWith(touchSuffix)) { - modifications.add(TouchFile(getDirPrefix(fileName) + "/" + fileName.removeSuffix(touchSuffix), touchPolicy)) - } - if (fileName.endsWith(deleteSuffix)) { - modifications.add(DeleteFile(getDirPrefix(fileName) + "/" + fileName.removeSuffix(deleteSuffix))) - } + for (file in testDataDir.walkTopDown()) { + if (!file.isFile) continue + + val relativeFilePath = file.toRelativeString(testDataDir) + + val (suffix, createModification) = rules.entries.firstOrNull { file.path.endsWith(it.key) } ?: continue + + val (moduleName, fileName) = splitToModuleNameAndFileName(relativeFilePath) + val srcDir = moduleName?.let { "$it/src" } ?: "src" + modifications.add(createModification(srcDir + "/" + fileName.removeSuffix(suffix), file)) } + return modifications } - val haveFilesWithoutNumbers = testDataDir.listFiles { it -> it.name.matches(".+\\.(${COMMANDS_AS_REGEX_PART})$".toRegex()) }?.isNotEmpty() ?: false - val haveFilesWithNumbers = testDataDir.listFiles { it -> it.name.matches(".+\\.(${COMMANDS_AS_REGEX_PART})\\.\\d+$".toRegex()) }?.isNotEmpty() ?: false + val haveFilesWithoutNumbers = testDataDir.walkTopDown().any { it.name.matches(".+\\.($COMMANDS_AS_REGEX_PART)$".toRegex()) } + val haveFilesWithNumbers = testDataDir.walkTopDown().any { it.name.matches(".+\\.($COMMANDS_AS_REGEX_PART)\\.\\d+$".toRegex()) } if (haveFilesWithoutNumbers && haveFilesWithNumbers) { throw IllegalStateException("Bad test data format: files ending with both unnumbered and numbered ${COMMANDS_AS_MESSAGE_PART} were found") diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 4da5a1a9ae3..f55df3297b3 100644 --- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -913,7 +913,7 @@ fun main(args: Array) { testGroup("jps-plugin/test", "jps-plugin/testData") { testClass() { model("incremental/multiModule", extension = null, excludeParentDirs = true) - model("incremental/pureKotlin", extension = null, excludeParentDirs = true) + model("incremental/pureKotlin", extension = null, recursive = false) model("incremental/withJava", extension = null, excludeParentDirs = true) model("incremental/inlineFunCallSite", extension = null, excludeParentDirs = true) } @@ -933,7 +933,7 @@ fun main(args: Array) { testGroup("jps-plugin/test", "jps-plugin/testData") { testClass() { model("incremental/multiModule", extension = null, excludeParentDirs = true) - model("incremental/pureKotlin", extension = null, excludeParentDirs = true) + model("incremental/pureKotlin", extension = null, recursive = false) model("incremental/withJava", extension = null, excludeParentDirs = true) model("incremental/inlineFunCallSite", extension = null, excludeParentDirs = true) model("incremental/classHierarchyAffected", extension = null, excludeParentDirs = true) diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java b/jps-plugin/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java index cf616f82111..c3ca6dd14ba 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java @@ -103,6 +103,12 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta doTest(fileName); } + @TestMetadata("moveFileToAnotherModule") + public void testMoveFileToAnotherModule() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/"); + doTest(fileName); + } + @TestMetadata("simpleDependency") public void testSimpleDependency() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/simpleDependency/"); @@ -176,7 +182,7 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta } public void testAllFilesPresentInPureKotlin() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/pureKotlin"), Pattern.compile("^([^\\.]+)$"), true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/pureKotlin"), Pattern.compile("^([^\\.]+)$"), false); } @TestMetadata("annotations") @@ -485,6 +491,18 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta doTest(fileName); } + @TestMetadata("moveFileWithChangingPackage") + public void testMoveFileWithChangingPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/"); + doTest(fileName); + } + + @TestMetadata("moveFileWithoutChangingPackage") + public void testMoveFileWithoutChangingPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/"); + doTest(fileName); + } + @TestMetadata("multifileClassFileAdded") public void testMultifileClassFileAdded() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/multifileClassFileAdded/"); @@ -784,7 +802,6 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/valRemoveCustomAccessor/"); doTest(fileName); } - } @TestMetadata("jps-plugin/testData/incremental/withJava") diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java b/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java index cefa62c3483..da142333f80 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/IncrementalJpsTestGenerated.java @@ -103,6 +103,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { doTest(fileName); } + @TestMetadata("moveFileToAnotherModule") + public void testMoveFileToAnotherModule() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/"); + doTest(fileName); + } + @TestMetadata("simpleDependency") public void testSimpleDependency() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/simpleDependency/"); @@ -176,7 +182,7 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { } public void testAllFilesPresentInPureKotlin() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/pureKotlin"), Pattern.compile("^([^\\.]+)$"), true); + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/pureKotlin"), Pattern.compile("^([^\\.]+)$"), false); } @TestMetadata("annotations") @@ -485,6 +491,18 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { doTest(fileName); } + @TestMetadata("moveFileWithChangingPackage") + public void testMoveFileWithChangingPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/"); + doTest(fileName); + } + + @TestMetadata("moveFileWithoutChangingPackage") + public void testMoveFileWithoutChangingPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/"); + doTest(fileName); + } + @TestMetadata("multifileClassFileAdded") public void testMultifileClassFileAdded() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/multifileClassFileAdded/"); @@ -784,7 +802,6 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/valRemoveCustomAccessor/"); doTest(fileName); } - } @TestMetadata("jps-plugin/testData/incremental/withJava") diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/build.log b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/build.log new file mode 100644 index 00000000000..38c05b916b0 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/build.log @@ -0,0 +1,43 @@ +================ Step #1 ================= + +Compiling files: + module1/src/b.kt +End of files +Exit code: ADDITIONAL_PASS_REQUIRED +------------------------------------------ +Cleaning output files: + out/production/module1/META-INF/module1.kotlin_module + out/production/module1/a/A.class + out/production/module1/a/AKt.class +End of files +Compiling files: + module1/src/a.kt +End of files +Exit code: OK +------------------------------------------ +Cleaning output files: + out/production/module2/META-INF/module2.kotlin_module + out/production/module2/b/B.class + out/production/module2/b/BKt.class +End of files +Cleaning output files: + out/production/module2/usage/UseClassBKt.class + out/production/module2/usage/UseFunBKt.class +End of files +Compiling files: + module2/src/useClassB.kt + module2/src/useFunB.kt +End of files +Exit code: ADDITIONAL_PASS_REQUIRED +------------------------------------------ +Cleaning output files: + out/production/module2/META-INF/module2.kotlin_module + out/production/module2/usage/UseClassAKt.class + out/production/module2/usage/UseFunAKt.class +End of files +Compiling files: + module2/src/useClassA.kt + module2/src/useFunA.kt +End of files +Exit code: OK +------------------------------------------ diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/dependencies.txt b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/dependencies.txt new file mode 100644 index 00000000000..827bf04cc58 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/dependencies.txt @@ -0,0 +1,2 @@ +module1-> +module2->module1 diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/experimental-ic-build.log b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/experimental-ic-build.log new file mode 100644 index 00000000000..e365cc0188c --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/experimental-ic-build.log @@ -0,0 +1,26 @@ +================ Step #1 ================= + +Compiling files: + module1/src/b.kt +End of files +Exit code: OK +------------------------------------------ +Cleaning output files: + out/production/module2/META-INF/module2.kotlin_module + out/production/module2/b/B.class + out/production/module2/b/BKt.class +End of files +Cleaning output files: + out/production/module2/usage/UseClassBKt.class + out/production/module2/usage/UseFunBKt.class +End of files +Compiling files: + module2/src/useClassB.kt + module2/src/useFunB.kt +End of files +Marked as dirty by Kotlin: + module1/src/b.kt +Exit code: ADDITIONAL_PASS_REQUIRED +------------------------------------------ +Exit code: NOTHING_DONE +------------------------------------------ diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module1_a.kt b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module1_a.kt new file mode 100644 index 00000000000..a3470c00a84 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module1_a.kt @@ -0,0 +1,6 @@ +package a + +class A + +fun a() { +} diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module1_b.kt.new b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module1_b.kt.new new file mode 100644 index 00000000000..7965b9e82a5 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module1_b.kt.new @@ -0,0 +1,6 @@ +package b + +class B + +fun b() { +} diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_b.kt b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_b.kt new file mode 100644 index 00000000000..7965b9e82a5 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_b.kt @@ -0,0 +1,6 @@ +package b + +class B + +fun b() { +} diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_b.kt.delete b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_b.kt.delete new file mode 100644 index 00000000000..e69de29bb2d diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useClassA.kt b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useClassA.kt new file mode 100644 index 00000000000..a6e5135a4b4 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useClassA.kt @@ -0,0 +1,5 @@ +package usage + +fun useClassA() { + a.A() +} diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useClassB.kt b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useClassB.kt new file mode 100644 index 00000000000..568e8076a09 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useClassB.kt @@ -0,0 +1,5 @@ +package usage + +fun useClassB() { + b.B() +} diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useFunA.kt b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useFunA.kt new file mode 100644 index 00000000000..9cee04d3276 --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useFunA.kt @@ -0,0 +1,5 @@ +package usage + +fun useFunA() { + a.a() +} diff --git a/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useFunB.kt b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useFunB.kt new file mode 100644 index 00000000000..bb4d7bca61f --- /dev/null +++ b/jps-plugin/testData/incremental/multiModule/moveFileToAnotherModule/module2_useFunB.kt @@ -0,0 +1,5 @@ +package usage + +fun useFunB() { + b.b() +} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/bar/a.kt.new b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/bar/a.kt.new new file mode 100644 index 00000000000..5495f8ba80d --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/bar/a.kt.new @@ -0,0 +1,5 @@ +package bar + +class Foo + +fun bar() {} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/bar/dummy.kt b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/bar/dummy.kt new file mode 100644 index 00000000000..bf4ea3d98f0 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/bar/dummy.kt @@ -0,0 +1,3 @@ +package bar + +private fun dummy() {} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/build.log b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/build.log new file mode 100644 index 00000000000..efa242c6d47 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/build.log @@ -0,0 +1,27 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/foo/AKt.class + out/production/module/foo/Foo.class +End of files +Compiling files: + src/bar/a.kt +End of files +Exit code: ADDITIONAL_PASS_REQUIRED +------------------------------------------ +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/bar/DummyKt.class + out/production/module/baz/UseClassKt.class + out/production/module/baz/UseFunKt.class + out/production/module/foo/DummyKt.class +End of files +Compiling files: + src/bar/dummy.kt + src/foo/dummy.kt + src/useClass.kt + src/useFun.kt +End of files +Exit code: OK +------------------------------------------ diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/experimental-ic-build.log b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/experimental-ic-build.log new file mode 100644 index 00000000000..015c0970896 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/experimental-ic-build.log @@ -0,0 +1,25 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/foo/AKt.class + out/production/module/foo/Foo.class +End of files +Compiling files: + src/bar/a.kt +End of files +Marked as dirty by Kotlin: + src/useFun.kt +Exit code: ADDITIONAL_PASS_REQUIRED +------------------------------------------ +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/baz/UseClassKt.class + out/production/module/baz/UseFunKt.class +End of files +Compiling files: + src/useClass.kt + src/useFun.kt +End of files +Exit code: OK +------------------------------------------ diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/foo/a.kt b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/foo/a.kt new file mode 100644 index 00000000000..8bb46f273df --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/foo/a.kt @@ -0,0 +1,5 @@ +package foo + +class Foo + +fun bar() {} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/foo/a.kt.delete b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/foo/a.kt.delete new file mode 100644 index 00000000000..e69de29bb2d diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/foo/dummy.kt b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/foo/dummy.kt new file mode 100644 index 00000000000..b40e183d8fb --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/foo/dummy.kt @@ -0,0 +1,3 @@ +package foo + +private fun dummy() {} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/useClass.kt b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/useClass.kt new file mode 100644 index 00000000000..5134f9a405f --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/useClass.kt @@ -0,0 +1,8 @@ +package baz + +import foo.* +import bar.* + +fun useClass() { + Foo() +} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/useFun.kt b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/useFun.kt new file mode 100644 index 00000000000..92512578ad1 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithChangingPackage/useFun.kt @@ -0,0 +1,8 @@ +package baz + +import foo.* +import bar.* + +fun useFun() { + bar() +} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/bar/a.kt.new b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/bar/a.kt.new new file mode 100644 index 00000000000..0394ed4179b --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/bar/a.kt.new @@ -0,0 +1,5 @@ +package baz + +class Foo + +fun bar() {} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/build.log b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/build.log new file mode 100644 index 00000000000..33498a2b680 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/build.log @@ -0,0 +1,23 @@ +================ Step #1 ================= + +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/baz/AKt.class + out/production/module/baz/Foo.class +End of files +Compiling files: + src/bar/a.kt +End of files +Exit code: OK +------------------------------------------ +Cleaning output files: + out/production/module/META-INF/module.kotlin_module + out/production/module/baz/UseClassKt.class + out/production/module/baz/UseFunKt.class +End of files +Compiling files: + src/useClass.kt + src/useFun.kt +End of files +Exit code: OK +------------------------------------------ diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/foo/a.kt b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/foo/a.kt new file mode 100644 index 00000000000..0394ed4179b --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/foo/a.kt @@ -0,0 +1,5 @@ +package baz + +class Foo + +fun bar() {} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/foo/a.kt.delete b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/foo/a.kt.delete new file mode 100644 index 00000000000..e69de29bb2d diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/useClass.kt b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/useClass.kt new file mode 100644 index 00000000000..8418cee6664 --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/useClass.kt @@ -0,0 +1,5 @@ +package baz + +fun useClass() { + Foo() +} diff --git a/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/useFun.kt b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/useFun.kt new file mode 100644 index 00000000000..d56ad84e8ec --- /dev/null +++ b/jps-plugin/testData/incremental/pureKotlin/moveFileWithoutChangingPackage/useFun.kt @@ -0,0 +1,5 @@ +package baz + +fun useFun() { + bar() +}