Kotlin incremental cache version change should not affect java only modules
This commit is contained in:
@@ -28,6 +28,8 @@ import org.jetbrains.jps.builders.impl.BuildTargetRegistryImpl
|
|||||||
import org.jetbrains.jps.builders.impl.TargetOutputIndexImpl
|
import org.jetbrains.jps.builders.impl.TargetOutputIndexImpl
|
||||||
import org.jetbrains.jps.builders.java.JavaBuilderUtil
|
import org.jetbrains.jps.builders.java.JavaBuilderUtil
|
||||||
import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor
|
import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor
|
||||||
|
import org.jetbrains.jps.builders.java.dependencyView.Mappings
|
||||||
|
import org.jetbrains.jps.builders.storage.BuildDataPaths
|
||||||
import org.jetbrains.jps.incremental.*
|
import org.jetbrains.jps.incremental.*
|
||||||
import org.jetbrains.jps.incremental.ModuleLevelBuilder.ExitCode.*
|
import org.jetbrains.jps.incremental.ModuleLevelBuilder.ExitCode.*
|
||||||
import org.jetbrains.jps.incremental.fs.CompilationRound
|
import org.jetbrains.jps.incremental.fs.CompilationRound
|
||||||
@@ -73,6 +75,7 @@ import java.util.*
|
|||||||
public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) {
|
public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) {
|
||||||
companion object {
|
companion object {
|
||||||
private val TARGETS_WITH_CLEARED_CACHES = Key<Set<ModuleBuildTarget>>("Targets with cleared Kotlin caches")
|
private val TARGETS_WITH_CLEARED_CACHES = Key<Set<ModuleBuildTarget>>("Targets with cleared Kotlin caches")
|
||||||
|
private val HAS_KOTLIN_FILE_NAME = "has-kotlin.txt"
|
||||||
|
|
||||||
public val KOTLIN_BUILDER_NAME: String = "Kotlin Builder"
|
public val KOTLIN_BUILDER_NAME: String = "Kotlin Builder"
|
||||||
public val LOOKUP_TRACKER: JpsElementChildRoleBase<JpsSimpleElement<out LookupTracker>> = JpsElementChildRoleBase.create("lookup tracker")
|
public val LOOKUP_TRACKER: JpsElementChildRoleBase<JpsSimpleElement<out LookupTracker>> = JpsElementChildRoleBase.create("lookup tracker")
|
||||||
@@ -91,6 +94,21 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
context.putUserData(TARGETS_WITH_CLEARED_CACHES, data)
|
context.putUserData(TARGETS_WITH_CLEARED_CACHES, data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun hasKotlin(target: ModuleBuildTarget, paths: BuildDataPaths): Boolean {
|
||||||
|
val hasKotlinFile = File(paths.getTargetDataRoot(target), HAS_KOTLIN_FILE_NAME)
|
||||||
|
return hasKotlinFile.exists()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setHasKotlin(target: ModuleBuildTarget, paths: BuildDataPaths) {
|
||||||
|
val hasKotlinFile = File(paths.getTargetDataRoot(target), HAS_KOTLIN_FILE_NAME)
|
||||||
|
hasKotlinFile.createNewFile()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun clearHasKotlin(target: ModuleBuildTarget, paths: BuildDataPaths) {
|
||||||
|
val hasKotlinFile = File(paths.getTargetDataRoot(target), HAS_KOTLIN_FILE_NAME)
|
||||||
|
hasKotlinFile.delete()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val statisticsLogger = TeamcityStatisticsLogger()
|
private val statisticsLogger = TeamcityStatisticsLogger()
|
||||||
@@ -123,11 +141,6 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
try {
|
try {
|
||||||
val exitCode = doBuild(chunk, context, dirtyFilesHolder, messageCollector, outputConsumer)
|
val exitCode = doBuild(chunk, context, dirtyFilesHolder, messageCollector, outputConsumer)
|
||||||
LOG.debug("Build result: " + exitCode)
|
LOG.debug("Build result: " + exitCode)
|
||||||
|
|
||||||
if (exitCode != ExitCode.CHUNK_REBUILD_REQUIRED && exitCode != ABORT) {
|
|
||||||
saveVersions(context, chunk)
|
|
||||||
}
|
|
||||||
|
|
||||||
return exitCode
|
return exitCode
|
||||||
}
|
}
|
||||||
catch (e: StopBuildException) {
|
catch (e: StopBuildException) {
|
||||||
@@ -163,17 +176,22 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
val targets = chunk.targets
|
val targets = chunk.targets
|
||||||
val requestedToRebuild = context.getUserData(TARGETS_WITH_CLEARED_CACHES) ?: setOf()
|
val requestedToRebuild = context.getUserData(TARGETS_WITH_CLEARED_CACHES) ?: setOf()
|
||||||
val isFullRebuild = JavaBuilderUtil.isForcedRecompilationAllJavaModules(context)
|
val isFullRebuild = JavaBuilderUtil.isForcedRecompilationAllJavaModules(context)
|
||||||
|
val hasDirtyKotlin = (dirtyFilesHolder.hasDirtyFiles() || dirtyFilesHolder.hasRemovedFiles()) &&
|
||||||
|
hasKotlinDirtyOrRemovedFiles(dirtyFilesHolder, chunk)
|
||||||
|
|
||||||
if (!isFullRebuild && !requestedToRebuild.containsAll(targets)) {
|
if (!isFullRebuild &&
|
||||||
val exitCode = checkVersions(context, dataManager, targets)
|
!requestedToRebuild.containsAll(targets) &&
|
||||||
|
(hasDirtyKotlin || targets.any { hasKotlin(it, dataManager.dataPaths) }) &&
|
||||||
if (exitCode != null) return exitCode
|
shouldRebuildBecauseVersionChanged(context, dataManager, targets)
|
||||||
|
) {
|
||||||
|
FSOperations.markDirtyRecursively(context, CompilationRound.NEXT, chunk) { KotlinSourceFileCollector.isKotlinSourceFile(it) }
|
||||||
|
return CHUNK_REBUILD_REQUIRED
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dirtyFilesHolder.hasDirtyFiles() &&
|
if (hasDirtyKotlin) {
|
||||||
!dirtyFilesHolder.hasRemovedFiles() ||
|
targets.forEach { setHasKotlin(it, dataManager.dataPaths) }
|
||||||
!hasKotlinDirtyOrRemovedFiles(dirtyFilesHolder, chunk)
|
}
|
||||||
) {
|
else {
|
||||||
return NOTHING_DONE
|
return NOTHING_DONE
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,6 +236,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
val generatedFiles = getGeneratedFiles(chunk, outputItemCollector)
|
val generatedFiles = getGeneratedFiles(chunk, outputItemCollector)
|
||||||
|
|
||||||
registerOutputItems(outputConsumer, generatedFiles)
|
registerOutputItems(outputConsumer, generatedFiles)
|
||||||
|
saveVersions(context, chunk)
|
||||||
|
|
||||||
if (JpsUtils.isJsKotlinModule(chunk.representativeTarget())) {
|
if (JpsUtils.isJsKotlinModule(chunk.representativeTarget())) {
|
||||||
copyJsLibraryFilesIfNeeded(chunk, project)
|
copyJsLibraryFilesIfNeeded(chunk, project)
|
||||||
@@ -330,15 +349,12 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun checkVersions(context: CompileContext, dataManager: BuildDataManager, targets: MutableSet<ModuleBuildTarget>): ExitCode? {
|
private fun shouldRebuildBecauseVersionChanged(context: CompileContext, dataManager: BuildDataManager, targets: MutableSet<ModuleBuildTarget>): Boolean {
|
||||||
val cacheVersionsProvider = CacheVersionProvider(dataManager.dataPaths)
|
val cacheVersionsProvider = CacheVersionProvider(dataManager.dataPaths)
|
||||||
val allVersions = cacheVersionsProvider.allVersions(targets)
|
val allVersions = cacheVersionsProvider.allVersions(targets)
|
||||||
val actions = allVersions.map { it.checkVersion() }.toSet().sorted()
|
val actions = allVersions.map { it.checkVersion() }.toSet().sorted()
|
||||||
|
val buildTargetIndex = context.projectDescriptor.buildTargetIndex
|
||||||
fun cleanNormalCaches() {
|
val allTargets = buildTargetIndex.allTargets.filterIsInstance<ModuleBuildTarget>().toSet()
|
||||||
LOG.info("Clearing caches for " + targets.joinToString { it.presentableName })
|
|
||||||
targets.forEach { dataManager.getKotlinCache(it).clean() }
|
|
||||||
}
|
|
||||||
|
|
||||||
for (status in actions) {
|
for (status in actions) {
|
||||||
when (status) {
|
when (status) {
|
||||||
@@ -354,29 +370,37 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val buildTargetIndex = context.projectDescriptor.buildTargetIndex
|
for (target in allTargets) {
|
||||||
val allTargets = buildTargetIndex.allTargets.filterIsInstance<ModuleBuildTarget>().toSet()
|
|
||||||
|
|
||||||
for (target in targets) {
|
|
||||||
dataManager.getKotlinCache(target).clean()
|
dataManager.getKotlinCache(target).clean()
|
||||||
|
|
||||||
|
// prevents excessive version checking in parallel compilation (user data is not shared in parallel compilation)
|
||||||
|
clearHasKotlin(target, dataManager.dataPaths)
|
||||||
}
|
}
|
||||||
|
|
||||||
dataManager.getStorage(KotlinDataContainerTarget, LookupStorageProvider).clean()
|
dataManager.getStorage(KotlinDataContainerTarget, LookupStorageProvider).clean()
|
||||||
registerTargetsWithClearedCaches(context, allTargets)
|
registerTargetsWithClearedCaches(context, allTargets)
|
||||||
|
|
||||||
return CHUNK_REBUILD_REQUIRED
|
return true
|
||||||
}
|
}
|
||||||
CacheVersion.Action.REBUILD_CHUNK -> {
|
CacheVersion.Action.REBUILD_CHUNK -> {
|
||||||
cleanNormalCaches()
|
LOG.info("Clearing caches for " + targets.joinToString { it.presentableName })
|
||||||
|
targets.forEach { dataManager.getKotlinCache(it).clean() }
|
||||||
registerTargetsWithClearedCaches(context, targets)
|
registerTargetsWithClearedCaches(context, targets)
|
||||||
return CHUNK_REBUILD_REQUIRED
|
return true
|
||||||
}
|
}
|
||||||
CacheVersion.Action.CLEAN_NORMAL_CACHES -> {
|
CacheVersion.Action.CLEAN_NORMAL_CACHES -> {
|
||||||
cleanNormalCaches()
|
LOG.info("Clearing caches for all targets")
|
||||||
|
|
||||||
|
for (target in allTargets) {
|
||||||
|
dataManager.getKotlinCache(target).clean()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
CacheVersion.Action.CLEAN_EXPERIMENTAL_CACHES -> {
|
CacheVersion.Action.CLEAN_EXPERIMENTAL_CACHES -> {
|
||||||
LOG.info("Clearing experimental caches for " + targets.joinToString { it.presentableName })
|
LOG.info("Clearing experimental caches for all targets")
|
||||||
targets.forEach { dataManager.getKotlinCache(it).cleanExperimental() }
|
|
||||||
|
for (target in allTargets) {
|
||||||
|
dataManager.getKotlinCache(target).cleanExperimental()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
CacheVersion.Action.CLEAN_DATA_CONTAINER -> {
|
CacheVersion.Action.CLEAN_DATA_CONTAINER -> {
|
||||||
LOG.info("Clearing lookup cache")
|
LOG.info("Clearing lookup cache")
|
||||||
@@ -389,7 +413,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun saveVersions(context: CompileContext, chunk: ModuleChunk) {
|
private fun saveVersions(context: CompileContext, chunk: ModuleChunk) {
|
||||||
|
|||||||
+14
-4
@@ -21,10 +21,20 @@ import org.jetbrains.kotlin.jps.incremental.CacheVersionProvider
|
|||||||
|
|
||||||
abstract class AbstractIncrementalCacheVersionChangedTest : AbstractIncrementalJpsTest(allowNoFilesWithSuffixInTestData = true) {
|
abstract class AbstractIncrementalCacheVersionChangedTest : AbstractIncrementalJpsTest(allowNoFilesWithSuffixInTestData = true) {
|
||||||
override fun performAdditionalModifications(modifications: List<AbstractIncrementalJpsTest.Modification>) {
|
override fun performAdditionalModifications(modifications: List<AbstractIncrementalJpsTest.Modification>) {
|
||||||
val cacheVersionProvider = CacheVersionProvider(projectDescriptor.dataManager.dataPaths)
|
val modifiedFiles = modifications.filterIsInstance<ModifyContent>().map { it.path }
|
||||||
val versions = getVersions(cacheVersionProvider, projectDescriptor.allModuleTargets)
|
val paths = projectDescriptor.dataManager.dataPaths
|
||||||
val versionFiles = versions.map { it.formatVersionFile }.filter { it.exists() }
|
val targets = projectDescriptor.allModuleTargets
|
||||||
versionFiles.forEach { it.writeText("777") }
|
|
||||||
|
if (modifiedFiles.any { it.endsWith("clear-has-kotlin") }) {
|
||||||
|
targets.forEach { KotlinBuilder.clearHasKotlin(it, paths) }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (modifiedFiles.none { it.endsWith("do-not-change-cache-versions") }) {
|
||||||
|
val cacheVersionProvider = CacheVersionProvider(paths)
|
||||||
|
val versions = getVersions(cacheVersionProvider, targets)
|
||||||
|
val versionFiles = versions.map { it.formatVersionFile }.filter { it.exists() }
|
||||||
|
versionFiles.forEach { it.writeText("777") }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun getVersions(cacheVersionProvider: CacheVersionProvider, targets: Iterable<ModuleBuildTarget>) =
|
protected open fun getVersions(cacheVersionProvider: CacheVersionProvider, targets: Iterable<ModuleBuildTarget>) =
|
||||||
|
|||||||
@@ -51,8 +51,10 @@ public abstract class AbstractIncrementalLazyCachesTest : AbstractIncrementalJps
|
|||||||
for (modification in modifications) {
|
for (modification in modifications) {
|
||||||
if (modification !is AbstractIncrementalJpsTest.ModifyContent) continue
|
if (modification !is AbstractIncrementalJpsTest.ModifyContent) continue
|
||||||
|
|
||||||
when (File(modification.path).name) {
|
val name = File(modification.path).name
|
||||||
"incremental-compilation" -> {
|
|
||||||
|
when {
|
||||||
|
name.endsWith("incremental-compilation") -> {
|
||||||
if (modification.dataFile.readAsBool()) {
|
if (modification.dataFile.readAsBool()) {
|
||||||
IncrementalCompilation.enableIncrementalCompilation()
|
IncrementalCompilation.enableIncrementalCompilation()
|
||||||
}
|
}
|
||||||
@@ -60,7 +62,7 @@ public abstract class AbstractIncrementalLazyCachesTest : AbstractIncrementalJps
|
|||||||
IncrementalCompilation.disableIncrementalCompilation()
|
IncrementalCompilation.disableIncrementalCompilation()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"experimental-compilation" -> {
|
name.endsWith("experimental-compilation") -> {
|
||||||
if (modification.dataFile.readAsBool()) {
|
if (modification.dataFile.readAsBool()) {
|
||||||
IncrementalCompilation.enableExperimental()
|
IncrementalCompilation.enableExperimental()
|
||||||
}
|
}
|
||||||
|
|||||||
+24
@@ -35,12 +35,24 @@ public class DataContainerVersionChangedTestGenerated extends AbstractDataContai
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/cacheVersionChanged"), Pattern.compile("^([^\\.]+)$"), true);
|
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/cacheVersionChanged"), Pattern.compile("^([^\\.]+)$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("clearedHasKotlin")
|
||||||
|
public void testClearedHasKotlin() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/clearedHasKotlin/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("exportedModule")
|
@TestMetadata("exportedModule")
|
||||||
public void testExportedModule() throws Exception {
|
public void testExportedModule() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/exportedModule/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/exportedModule/");
|
||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javaOnlyModulesAreNotAffected")
|
||||||
|
public void testJavaOnlyModulesAreNotAffected() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/javaOnlyModulesAreNotAffected/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("module1Modified")
|
@TestMetadata("module1Modified")
|
||||||
public void testModule1Modified() throws Exception {
|
public void testModule1Modified() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/module1Modified/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/module1Modified/");
|
||||||
@@ -71,10 +83,22 @@ public class DataContainerVersionChangedTestGenerated extends AbstractDataContai
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("touchedOnlyJavaFile")
|
||||||
|
public void testTouchedOnlyJavaFile() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/touchedOnlyJavaFile/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("untouchedFiles")
|
@TestMetadata("untouchedFiles")
|
||||||
public void testUntouchedFiles() throws Exception {
|
public void testUntouchedFiles() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/untouchedFiles/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/untouchedFiles/");
|
||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withError")
|
||||||
|
public void testWithError() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/withError/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -41,6 +41,18 @@ public class ExperimentalChangeIncrementalOptionTestGenerated extends AbstractEx
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("experimentalOnJavaChanged")
|
||||||
|
public void testExperimentalOnJavaChanged() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/changeIncrementalOption/experimentalOnJavaChanged/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("experimentalOnJavaOnly")
|
||||||
|
public void testExperimentalOnJavaOnly() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/changeIncrementalOption/experimentalOnJavaOnly/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("experimentalOnOff")
|
@TestMetadata("experimentalOnOff")
|
||||||
public void testExperimentalOnOff() throws Exception {
|
public void testExperimentalOnOff() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/changeIncrementalOption/experimentalOnOff/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/changeIncrementalOption/experimentalOnOff/");
|
||||||
|
|||||||
+24
@@ -35,12 +35,24 @@ public class ExperimentalIncrementalCacheVersionChangedTestGenerated extends Abs
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/cacheVersionChanged"), Pattern.compile("^([^\\.]+)$"), true);
|
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/cacheVersionChanged"), Pattern.compile("^([^\\.]+)$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("clearedHasKotlin")
|
||||||
|
public void testClearedHasKotlin() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/clearedHasKotlin/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("exportedModule")
|
@TestMetadata("exportedModule")
|
||||||
public void testExportedModule() throws Exception {
|
public void testExportedModule() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/exportedModule/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/exportedModule/");
|
||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javaOnlyModulesAreNotAffected")
|
||||||
|
public void testJavaOnlyModulesAreNotAffected() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/javaOnlyModulesAreNotAffected/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("module1Modified")
|
@TestMetadata("module1Modified")
|
||||||
public void testModule1Modified() throws Exception {
|
public void testModule1Modified() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/module1Modified/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/module1Modified/");
|
||||||
@@ -71,10 +83,22 @@ public class ExperimentalIncrementalCacheVersionChangedTestGenerated extends Abs
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("touchedOnlyJavaFile")
|
||||||
|
public void testTouchedOnlyJavaFile() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/touchedOnlyJavaFile/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("untouchedFiles")
|
@TestMetadata("untouchedFiles")
|
||||||
public void testUntouchedFiles() throws Exception {
|
public void testUntouchedFiles() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/untouchedFiles/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/untouchedFiles/");
|
||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withError")
|
||||||
|
public void testWithError() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/withError/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+24
@@ -35,12 +35,24 @@ public class IncrementalCacheVersionChangedTestGenerated extends AbstractIncreme
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/cacheVersionChanged"), Pattern.compile("^([^\\.]+)$"), true);
|
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("jps-plugin/testData/incremental/cacheVersionChanged"), Pattern.compile("^([^\\.]+)$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("clearedHasKotlin")
|
||||||
|
public void testClearedHasKotlin() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/clearedHasKotlin/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("exportedModule")
|
@TestMetadata("exportedModule")
|
||||||
public void testExportedModule() throws Exception {
|
public void testExportedModule() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/exportedModule/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/exportedModule/");
|
||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("javaOnlyModulesAreNotAffected")
|
||||||
|
public void testJavaOnlyModulesAreNotAffected() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/javaOnlyModulesAreNotAffected/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("module1Modified")
|
@TestMetadata("module1Modified")
|
||||||
public void testModule1Modified() throws Exception {
|
public void testModule1Modified() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/module1Modified/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/module1Modified/");
|
||||||
@@ -71,10 +83,22 @@ public class IncrementalCacheVersionChangedTestGenerated extends AbstractIncreme
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("touchedOnlyJavaFile")
|
||||||
|
public void testTouchedOnlyJavaFile() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/touchedOnlyJavaFile/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("untouchedFiles")
|
@TestMetadata("untouchedFiles")
|
||||||
public void testUntouchedFiles() throws Exception {
|
public void testUntouchedFiles() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/untouchedFiles/");
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/untouchedFiles/");
|
||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withError")
|
||||||
|
public void testWithError() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/cacheVersionChanged/withError/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,8 @@ import java.io.*
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
import java.util.zip.ZipOutputStream
|
import java.util.zip.ZipOutputStream
|
||||||
import kotlin.test.*
|
import kotlin.test.assertFalse
|
||||||
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
public class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
|
public class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
|
||||||
companion object {
|
companion object {
|
||||||
@@ -234,7 +235,7 @@ public class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
|
|||||||
val buildResult = makeAll()
|
val buildResult = makeAll()
|
||||||
buildResult.assertSuccessful()
|
buildResult.assertSuccessful()
|
||||||
val warnings = buildResult.getMessages(BuildMessage.Kind.WARNING)
|
val warnings = buildResult.getMessages(BuildMessage.Kind.WARNING)
|
||||||
assertEquals("Warning about invalid package prefix in module 2 is expected: $warnings", 2, warnings.size)
|
assertEquals("Warning about invalid package prefix in module 2 is expected: $warnings", 1, warnings.size)
|
||||||
assertEquals("Invalid package prefix name is ignored: invalid-prefix.test", warnings.first().messageText)
|
assertEquals("Invalid package prefix name is ignored: invalid-prefix.test", warnings.first().messageText)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/C.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_C.java
|
||||||
|
End of files
|
||||||
|
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/A.class
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/B.class
|
||||||
|
out/production/module1/C.class
|
||||||
|
out/production/module1/D.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_A.kt
|
||||||
|
module1/src/module1_B.kt
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_C.java
|
||||||
|
module1/src/module1_D.java
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module2/E.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module2/src/module2_E.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module3/F.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module3/src/module3_F.kt
|
||||||
|
End of files
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/C.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_C.java
|
||||||
|
End of files
|
||||||
|
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/A.class
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/B.class
|
||||||
|
out/production/module1/C.class
|
||||||
|
out/production/module1/D.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_A.kt
|
||||||
|
module1/src/module1_B.kt
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_C.java
|
||||||
|
module1/src/module1_D.java
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module2/E.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module2/src/module2_E.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module3/F.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module3/src/module3_F.kt
|
||||||
|
End of files
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
module1->
|
||||||
|
module2->module1
|
||||||
|
module3->module2
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class A
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class A
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class B
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class C {}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
class C {}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class D {}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class E
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class F
|
||||||
Vendored
+14
@@ -0,0 +1,14 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/A.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_A.java
|
||||||
|
End of files
|
||||||
|
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/B.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_B.java
|
||||||
|
End of files
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/A.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_A.java
|
||||||
|
End of files
|
||||||
|
|
||||||
|
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/B.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_B.java
|
||||||
|
End of files
|
||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
module1->
|
||||||
|
module2->module1
|
||||||
|
module3->module2
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
class A {}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
class B {}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
class C {}
|
||||||
@@ -1,10 +1,4 @@
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module5/module5/E.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module5/src/module5_E.java
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module4/module4/D.class
|
out/production/module4/module4/D.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
|
|||||||
jps-plugin/testData/incremental/cacheVersionChanged/module1Modified/data-container-version-build.log
Vendored
-6
@@ -1,10 +1,4 @@
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module5/module5/E.class
|
|
||||||
End of files
|
|
||||||
Compiling files:
|
|
||||||
module5/src/module5_E.java
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module4/module4/D.class
|
out/production/module4/module4/D.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
|
|||||||
+2
@@ -7,6 +7,8 @@ module1/src/module1_A.kt
|
|||||||
End of files
|
End of files
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module2/b/B.class
|
out/production/module2/b/B.class
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
out/production/module2/b/C.class
|
out/production/module2/b/C.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
|
|||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class A {}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class A {}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package test
|
||||||
|
|
||||||
|
fun f() {
|
||||||
|
other.other()
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package test
|
||||||
|
|
||||||
|
fun g() {
|
||||||
|
other.other()
|
||||||
|
}
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module/A.class
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
out/production/module/other/OtherKt.class
|
||||||
|
out/production/module/test/AKt.class
|
||||||
|
out/production/module/test/BKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/a.kt
|
||||||
|
src/b.kt
|
||||||
|
src/other.kt
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/A.java
|
||||||
|
End of files
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module/A.class
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module/META-INF/module.kotlin_module
|
||||||
|
out/production/module/other/OtherKt.class
|
||||||
|
out/production/module/test/AKt.class
|
||||||
|
out/production/module/test/BKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/a.kt
|
||||||
|
src/b.kt
|
||||||
|
src/other.kt
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/A.java
|
||||||
|
End of files
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
package other
|
||||||
|
|
||||||
|
fun other() {
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module4/module4/D.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module4/src/module4_d.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/META-INF/module1.kotlin_module
|
||||||
|
out/production/module1/module1/A.class
|
||||||
|
out/production/module1/module1/Module1_aKt.class
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/module1/Module1_fKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_a.kt
|
||||||
|
module1/src/module1_f.kt
|
||||||
|
End of files
|
||||||
|
COMPILATION FAILED
|
||||||
|
Name expected
|
||||||
|
|
||||||
|
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_a.kt
|
||||||
|
module1/src/module1_f.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
|
out/production/module2/module2/Module2_bKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module2/src/module2_b.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module3/META-INF/module3.kotlin_module
|
||||||
|
out/production/module3/module3/Module3_cKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module3/src/module3_c.kt
|
||||||
|
End of files
|
||||||
Vendored
+38
@@ -0,0 +1,38 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module4/module4/D.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module4/src/module4_d.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/META-INF/module1.kotlin_module
|
||||||
|
out/production/module1/module1/A.class
|
||||||
|
out/production/module1/module1/Module1_aKt.class
|
||||||
|
out/production/module1/module1/Module1_fKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_a.kt
|
||||||
|
module1/src/module1_f.kt
|
||||||
|
End of files
|
||||||
|
COMPILATION FAILED
|
||||||
|
Name expected
|
||||||
|
|
||||||
|
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_a.kt
|
||||||
|
module1/src/module1_f.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
|
out/production/module2/module2/Module2_bKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module2/src/module2_b.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module3/META-INF/module3.kotlin_module
|
||||||
|
out/production/module3/module3/Module3_cKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module3/src/module3_c.kt
|
||||||
|
End of files
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
module1->
|
||||||
|
module2->module1
|
||||||
|
module3->module2
|
||||||
|
module4->
|
||||||
|
module5->
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package module1
|
||||||
|
|
||||||
|
class A
|
||||||
|
|
||||||
|
fun a() {
|
||||||
|
}
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package module1
|
||||||
|
|
||||||
|
class
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
package module1
|
||||||
|
|
||||||
|
class A
|
||||||
|
|
||||||
|
fun a() {
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package module1
|
||||||
|
|
||||||
|
fun f() {}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package module2
|
||||||
|
|
||||||
|
import module1.*
|
||||||
|
|
||||||
|
fun b() {
|
||||||
|
A()
|
||||||
|
a()
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package module3
|
||||||
|
|
||||||
|
import module2.*
|
||||||
|
|
||||||
|
fun c() {
|
||||||
|
b()
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package module4
|
||||||
|
|
||||||
|
class D
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package module5;
|
||||||
|
|
||||||
|
class E {}
|
||||||
+32
-16
@@ -1,26 +1,42 @@
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module1/foo/Z.class
|
||||||
out/production/module/foo/A.class
|
|
||||||
out/production/module/foo/AKt.class
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module/foo/B.class
|
|
||||||
out/production/module/foo/BKt.class
|
|
||||||
out/production/module/foo/C.class
|
|
||||||
out/production/module/foo/CKt.class
|
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/a.kt
|
module1/src/module1_z.kt
|
||||||
src/b.kt
|
End of files
|
||||||
src/c.kt
|
Cleaning output files:
|
||||||
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
|
out/production/module2/foo/A.class
|
||||||
|
out/production/module2/foo/B.class
|
||||||
|
out/production/module2/foo/C.class
|
||||||
|
out/production/module2/foo/Module2_aKt.class
|
||||||
|
out/production/module2/foo/Module2_bKt.class
|
||||||
|
out/production/module2/foo/Module2_cKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module2/src/module2_a.kt
|
||||||
|
module2/src/module2_b.kt
|
||||||
|
module2/src/module2_c.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module3/foo/D.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module3/src/module3_d.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module4/foo/E.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module4/src/module4_e.kt
|
||||||
End of files
|
End of files
|
||||||
|
|
||||||
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
out/production/module/foo/A.class
|
out/production/module2/foo/A.class
|
||||||
out/production/module/foo/AKt.class
|
out/production/module2/foo/Module2_aKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/a.kt
|
module2/src/module2_a.kt
|
||||||
End of files
|
End of files
|
||||||
|
|||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
module1->
|
||||||
|
module2->module1
|
||||||
|
module3->module2
|
||||||
|
module4->module3
|
||||||
Vendored
+20
-2
@@ -4,10 +4,28 @@ kotlin-data-container
|
|||||||
file-to-id.tab
|
file-to-id.tab
|
||||||
id-to-file.tab
|
id-to-file.tab
|
||||||
lookups.tab
|
lookups.tab
|
||||||
Module 'module' production
|
Module 'module1' production
|
||||||
|
experimental-format-version.txt
|
||||||
|
format-version.txt
|
||||||
|
proto.tab
|
||||||
|
source-to-classes.tab
|
||||||
|
Module 'module1' tests
|
||||||
|
Module 'module2' production
|
||||||
experimental-format-version.txt
|
experimental-format-version.txt
|
||||||
format-version.txt
|
format-version.txt
|
||||||
package-parts.tab
|
package-parts.tab
|
||||||
proto.tab
|
proto.tab
|
||||||
source-to-classes.tab
|
source-to-classes.tab
|
||||||
Module 'module' tests
|
Module 'module2' tests
|
||||||
|
Module 'module3' production
|
||||||
|
experimental-format-version.txt
|
||||||
|
format-version.txt
|
||||||
|
proto.tab
|
||||||
|
source-to-classes.tab
|
||||||
|
Module 'module3' tests
|
||||||
|
Module 'module4' production
|
||||||
|
experimental-format-version.txt
|
||||||
|
format-version.txt
|
||||||
|
proto.tab
|
||||||
|
source-to-classes.tab
|
||||||
|
Module 'module4' tests
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
class Z
|
||||||
Vendored
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
class D
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
class E
|
||||||
Vendored
+25
@@ -0,0 +1,25 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module1/META-INF/module1.kotlin_module
|
||||||
|
out/production/module1/Module1_aKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module1/src/module1_a.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module2/B.class
|
||||||
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
|
out/production/module2/Module2_cKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module2/src/module2_c.kt
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module2/src/module2_B.java
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module3/META-INF/module3.kotlin_module
|
||||||
|
out/production/module3/Module3_dKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module3/src/module3_d.kt
|
||||||
|
End of files
|
||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
module1->
|
||||||
|
module2->module1
|
||||||
|
module3->module2
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
kotlin-data-container
|
||||||
|
data-container-format-version.txt
|
||||||
|
counters.tab
|
||||||
|
file-to-id.tab
|
||||||
|
id-to-file.tab
|
||||||
|
lookups.tab
|
||||||
|
Module 'module1' production
|
||||||
|
experimental-format-version.txt
|
||||||
|
format-version.txt
|
||||||
|
package-parts.tab
|
||||||
|
proto.tab
|
||||||
|
source-to-classes.tab
|
||||||
|
Module 'module1' tests
|
||||||
|
Module 'module2' production
|
||||||
|
experimental-format-version.txt
|
||||||
|
format-version.txt
|
||||||
|
package-parts.tab
|
||||||
|
proto.tab
|
||||||
|
source-to-classes.tab
|
||||||
|
Module 'module2' tests
|
||||||
|
Module 'module3' production
|
||||||
|
experimental-format-version.txt
|
||||||
|
format-version.txt
|
||||||
|
package-parts.tab
|
||||||
|
proto.tab
|
||||||
|
source-to-classes.tab
|
||||||
|
Module 'module3' tests
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
fun a() {}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
class B {}
|
||||||
jps-plugin/testData/incremental/changeIncrementalOption/experimentalOnJavaChanged/module2_B.java.new
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
class B {}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
fun c() {}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
fun d() {}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
class A {}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
class B {}
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
Cleaning output files:
|
||||||
|
out/production/module/A.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
src/A.java
|
||||||
|
End of files
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
kotlin-data-container
|
||||||
|
Module 'module' production
|
||||||
|
Module 'module' tests
|
||||||
+43
-27
@@ -1,47 +1,63 @@
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module1/foo/Z.class
|
||||||
out/production/module/foo/A.class
|
|
||||||
out/production/module/foo/AKt.class
|
|
||||||
End of files
|
|
||||||
Cleaning output files:
|
|
||||||
out/production/module/foo/B.class
|
|
||||||
out/production/module/foo/BKt.class
|
|
||||||
out/production/module/foo/C.class
|
|
||||||
out/production/module/foo/CKt.class
|
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/a.kt
|
module1/src/module1_z.kt
|
||||||
src/b.kt
|
End of files
|
||||||
src/c.kt
|
Cleaning output files:
|
||||||
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
|
out/production/module2/foo/A.class
|
||||||
|
out/production/module2/foo/B.class
|
||||||
|
out/production/module2/foo/C.class
|
||||||
|
out/production/module2/foo/Module2_aKt.class
|
||||||
|
out/production/module2/foo/Module2_bKt.class
|
||||||
|
out/production/module2/foo/Module2_cKt.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module2/src/module2_a.kt
|
||||||
|
module2/src/module2_b.kt
|
||||||
|
module2/src/module2_c.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module3/foo/D.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module3/src/module3_d.kt
|
||||||
|
End of files
|
||||||
|
Cleaning output files:
|
||||||
|
out/production/module4/foo/E.class
|
||||||
|
End of files
|
||||||
|
Compiling files:
|
||||||
|
module4/src/module4_e.kt
|
||||||
End of files
|
End of files
|
||||||
|
|
||||||
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
out/production/module/foo/A.class
|
out/production/module2/foo/A.class
|
||||||
out/production/module/foo/AKt.class
|
out/production/module2/foo/Module2_aKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/a.kt
|
module2/src/module2_a.kt
|
||||||
End of files
|
End of files
|
||||||
|
|
||||||
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
out/production/module/foo/A.class
|
out/production/module2/foo/A.class
|
||||||
out/production/module/foo/AKt.class
|
out/production/module2/foo/Module2_aKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/a.kt
|
module2/src/module2_a.kt
|
||||||
End of files
|
End of files
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
out/production/module/foo/B.class
|
out/production/module2/foo/B.class
|
||||||
out/production/module/foo/BKt.class
|
out/production/module2/foo/C.class
|
||||||
out/production/module/foo/C.class
|
out/production/module2/foo/Module2_bKt.class
|
||||||
out/production/module/foo/CKt.class
|
out/production/module2/foo/Module2_cKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/b.kt
|
module2/src/module2_b.kt
|
||||||
src/c.kt
|
module2/src/module2_c.kt
|
||||||
End of files
|
End of files
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
module1->
|
||||||
|
module2->module1
|
||||||
|
module3->module2
|
||||||
|
module4->module3
|
||||||
jps-plugin/testData/incremental/changeIncrementalOption/experimentalOnOff/expected-kotlin-caches.txt
Vendored
+17
-2
@@ -1,7 +1,22 @@
|
|||||||
kotlin-data-container
|
kotlin-data-container
|
||||||
Module 'module' production
|
Module 'module1' production
|
||||||
|
format-version.txt
|
||||||
|
proto.tab
|
||||||
|
source-to-classes.tab
|
||||||
|
Module 'module1' tests
|
||||||
|
Module 'module2' production
|
||||||
format-version.txt
|
format-version.txt
|
||||||
package-parts.tab
|
package-parts.tab
|
||||||
proto.tab
|
proto.tab
|
||||||
source-to-classes.tab
|
source-to-classes.tab
|
||||||
Module 'module' tests
|
Module 'module2' tests
|
||||||
|
Module 'module3' production
|
||||||
|
format-version.txt
|
||||||
|
proto.tab
|
||||||
|
source-to-classes.tab
|
||||||
|
Module 'module3' tests
|
||||||
|
Module 'module4' production
|
||||||
|
format-version.txt
|
||||||
|
proto.tab
|
||||||
|
source-to-classes.tab
|
||||||
|
Module 'module4' tests
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
class Z
|
||||||
Vendored
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
on
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
class D
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
class E
|
||||||
+10
-10
@@ -1,20 +1,20 @@
|
|||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
out/production/module/foo/AKt.class
|
out/production/module2/foo/Module2_aKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/a.kt
|
module2/src/module2_a.kt
|
||||||
src/b.kt
|
module2/src/module2_b.kt
|
||||||
src/c.kt
|
module2/src/module2_c.kt
|
||||||
End of files
|
End of files
|
||||||
|
|
||||||
|
|
||||||
Cleaning output files:
|
Cleaning output files:
|
||||||
out/production/module/META-INF/module.kotlin_module
|
out/production/module2/META-INF/module2.kotlin_module
|
||||||
out/production/module/foo/AKt.class
|
out/production/module2/foo/Module2_aKt.class
|
||||||
End of files
|
End of files
|
||||||
Compiling files:
|
Compiling files:
|
||||||
src/a.kt
|
module2/src/module2_a.kt
|
||||||
src/b.kt
|
module2/src/module2_b.kt
|
||||||
src/c.kt
|
module2/src/module2_c.kt
|
||||||
End of files
|
End of files
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
module1->
|
||||||
|
module2->module1
|
||||||
|
module3->module2
|
||||||
|
module4->module3
|
||||||
Vendored
+8
-2
@@ -1,3 +1,9 @@
|
|||||||
kotlin-data-container
|
kotlin-data-container
|
||||||
Module 'module' production
|
Module 'module1' production
|
||||||
Module 'module' tests
|
Module 'module1' tests
|
||||||
|
Module 'module2' production
|
||||||
|
Module 'module2' tests
|
||||||
|
Module 'module3' production
|
||||||
|
Module 'module3' tests
|
||||||
|
Module 'module4' production
|
||||||
|
Module 'module4' tests
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
class Z
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user