From a474165a8fa752b8658d21098fff553ac2aae223 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Fri, 22 Jan 2016 15:47:35 +0300 Subject: [PATCH] Recompile subtypes when class member is changed --- .../incremental/IncrementalCacheImpl.kt | 28 +++++++++++++++++-- .../kotlin/jps/build/KotlinBuilder.kt | 16 +++++++++-- ...perimentalIncrementalJpsTestGenerated.java | 12 ++++++++ .../experimentalOn/expected-kotlin-caches.txt | 4 +++ .../build.log | 4 +++ .../methodAdded/build.log | 2 ++ .../methodAnnotationAdded/build.log | 2 ++ .../methodNullabilityChanged/build.log | 3 ++ .../overrideExplicit/A.kt | 3 ++ .../overrideExplicit/A.kt.new.1 | 3 ++ .../overrideExplicit/A.kt.new.2 | 3 ++ .../overrideExplicit/B.kt | 3 ++ .../overrideExplicit/C.kt | 1 + .../overrideExplicit/build.log | 23 +++++++++++++++ .../overrideImplicit/A.kt | 3 ++ .../overrideImplicit/B.kt | 3 ++ .../overrideImplicit/B.kt.new.1 | 3 ++ .../overrideImplicit/B.kt.new.2 | 3 ++ .../overrideImplicit/BA.kt | 1 + .../overrideImplicit/C.kt | 1 + .../overrideImplicit/build.log | 23 +++++++++++++++ .../propertyNullabilityChanged/build.log | 3 ++ .../experimental-expected-kotlin-caches.txt | 3 +- .../experimental-expected-kotlin-caches.txt | 3 +- .../experimental-ic-build.log | 7 +++++ 25 files changed, 153 insertions(+), 7 deletions(-) create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt.new.1 create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt.new.2 create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/B.kt create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/C.kt create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/build.log create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/A.kt create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt.new.1 create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt.new.2 create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/BA.kt create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/C.kt create mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/build.log diff --git a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalCacheImpl.kt b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalCacheImpl.kt index 5ae2087ab18..d1dc2a30c9c 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalCacheImpl.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalCacheImpl.kt @@ -62,6 +62,7 @@ open class IncrementalCacheImpl( private val DIRTY_OUTPUT_CLASSES = "dirty-output-classes" private val SUBTYPES = "subtypes" private val SUPERTYPES = "supertypes" + private val CLASS_FQ_NAME_TO_SOURCE = "class-fq-name-to-source" private val MODULE_MAPPING_FILE_NAME = "." + ModuleMapping.MAPPING_FILE_EXT } @@ -86,6 +87,7 @@ open class IncrementalCacheImpl( private val dirtyOutputClassesMap = registerMap(DirtyOutputClassesMap(DIRTY_OUTPUT_CLASSES.storageFile)) private val subtypesMap = registerExperimentalMap(SubtypesMap(SUBTYPES.storageFile)) private val supertypesMap = registerExperimentalMap(SupertypesMap(SUPERTYPES.storageFile)) + private val classFqNameToSourceMap = registerExperimentalMap(ClassFqNameToSourceMap(CLASS_FQ_NAME_TO_SOURCE.storageFile)) private val dependents = arrayListOf>() private val outputDir by lazy(LazyThreadSafetyMode.NONE) { requireNotNull(targetOutputDir) { "Target is expected to have output directory: $target" } } @@ -120,6 +122,8 @@ open class IncrementalCacheImpl( fun getSubtypesOf(className: FqName): Sequence = subtypesMap[className].asSequence() + fun getSourceFileIfClass(fqName: FqName): File? = classFqNameToSourceMap[fqName] + override fun getClassFilePath(internalClassName: String): String { return toSystemIndependentName(File(outputDir, "$internalClassName.class").canonicalPath) } @@ -165,6 +169,7 @@ open class IncrementalCacheImpl( // because we don't write proto for multifile facades. // As a workaround we can remove proto values for multifile facades. protoMap.remove(className) + classFqNameToSourceMap.remove(className.fqNameForClassNameWithoutDollars) // TODO NO_CHANGES? (delegates only) constantsMap.process(kotlinClass) + @@ -180,7 +185,8 @@ open class IncrementalCacheImpl( additionalProcessChangedClass(kotlinClass, isPackage = true) } KotlinClassHeader.Kind.CLASS -> { - addToClassStorage(kotlinClass) + assert(sourceFiles.size == 1) { "Class is expected to have only one source file: $sourceFiles" } + addToClassStorage(kotlinClass, sourceFiles.first()) protoMap.process(kotlinClass, isPackage = false) + constantsMap.process(kotlinClass) + @@ -515,7 +521,22 @@ open class IncrementalCacheImpl( } } - private fun addToClassStorage(kotlinClass: LocalFileKotlinClass) { + inner class ClassFqNameToSourceMap(storageFile: File) : BasicStringMap(storageFile, EnumeratorStringDescriptor(), PathStringDescriptor) { + operator fun set(fqName: FqName, sourceFile: File) { + storage[fqName.asString()] = sourceFile.canonicalPath + } + + operator fun get(fqName: FqName): File? = + storage[fqName.asString()]?.let(::File) + + fun remove(fqName: FqName) { + storage.remove(fqName.asString()) + } + + override fun dumpValue(value: String) = value + } + + private fun addToClassStorage(kotlinClass: LocalFileKotlinClass, srcFile: File) { if (!IncrementalCompilation.isExperimental()) return val classData = JvmProtoBufUtil.readClassDataFrom(kotlinClass.classHeader.data!!, kotlinClass.classHeader.strings!!) @@ -531,6 +552,7 @@ open class IncrementalCacheImpl( removedSupertypes.forEach { subtypesMap.removeValues(it, setOf(child)) } supertypesMap[child] = parents + classFqNameToSourceMap[kotlinClass.className.fqNameForClassNameWithoutDollars] = srcFile } private fun removeAllFromClassStorage(removedClasses: Collection) { @@ -558,6 +580,8 @@ open class IncrementalCacheImpl( cache.subtypesMap.removeValues(parent, removedFqNames) } } + + removedFqNames.forEach { classFqNameToSourceMap.remove(it) } } private inner class DirtyOutputClassesMap(storageFile: File) : BasicStringMap(storageFile, BooleanDataDescriptor.INSTANCE) { diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 62773565ebb..3a0d2447b13 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -744,6 +744,7 @@ private fun CompilationResult.doProcessChangesUsingLookups( caches: Collection> ) { val dirtyLookupSymbols = HashSet() + val dirtyClassesFqNames = HashSet() val lookupStorage = dataManager.getStorage(KotlinDataContainerTarget, JpsLookupStorageProvider) val allCaches: Sequence> = caches.asSequence().flatMap { it.dependentsWithThis } @@ -764,10 +765,12 @@ private fun CompilationResult.doProcessChangesUsingLookups( } } else if (change is ChangeInfo.MembersChanged) { - val scopes = withSubtypes(change.fqName, allCaches).map { it.asString() } + val fqNames = withSubtypes(change.fqName, allCaches) + // need to recompile subtypes because changed member might break override + dirtyClassesFqNames.addAll(fqNames) - change.names.forAllPairs(scopes) { name, scope -> - dirtyLookupSymbols.add(LookupSymbol(name, scope)) + change.names.forAllPairs(fqNames) { name, fqName -> + dirtyLookupSymbols.add(LookupSymbol(name, fqName.asString())) } } } @@ -782,6 +785,13 @@ private fun CompilationResult.doProcessChangesUsingLookups( dirtyFiles.addAll(affectedFiles) } + for (cache in allCaches) { + for (dirtyClassFqName in dirtyClassesFqNames) { + val srcFile = cache.getSourceFileIfClass(dirtyClassFqName) ?: continue + dirtyFiles.add(srcFile) + } + } + fsOperations.markFiles(dirtyFiles.asIterable(), excludeFiles = compiledFiles) KotlinBuilder.LOG.debug("End of processing changes") } 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 21cb93aca87..8d733b367d3 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/ExperimentalIncrementalJpsTestGenerated.java @@ -1213,6 +1213,18 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta doTest(fileName); } + @TestMetadata("overrideExplicit") + public void testOverrideExplicit() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/"); + doTest(fileName); + } + + @TestMetadata("overrideImplicit") + public void testOverrideImplicit() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/"); + doTest(fileName); + } + @TestMetadata("packageFacadeToClass") public void testPackageFacadeToClass() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/classHierarchyAffected/packageFacadeToClass/"); diff --git a/jps-plugin/testData/incremental/changeIncrementalOption/experimentalOn/expected-kotlin-caches.txt b/jps-plugin/testData/incremental/changeIncrementalOption/experimentalOn/expected-kotlin-caches.txt index c892b694310..17c6e62dbff 100644 --- a/jps-plugin/testData/incremental/changeIncrementalOption/experimentalOn/expected-kotlin-caches.txt +++ b/jps-plugin/testData/incremental/changeIncrementalOption/experimentalOn/expected-kotlin-caches.txt @@ -7,12 +7,14 @@ kotlin-data-container Module 'module1' production experimental-format-version.txt format-version.txt + class-fq-name-to-source.tab proto.tab source-to-classes.tab Module 'module1' tests Module 'module2' production experimental-format-version.txt format-version.txt + class-fq-name-to-source.tab package-parts.tab proto.tab source-to-classes.tab @@ -22,12 +24,14 @@ Module 'module2' tests Module 'module3' production experimental-format-version.txt format-version.txt + class-fq-name-to-source.tab proto.tab source-to-classes.tab Module 'module3' tests Module 'module4' production experimental-format-version.txt format-version.txt + class-fq-name-to-source.tab proto.tab source-to-classes.tab Module 'module4' tests \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/build.log b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/build.log index f83d4d254bb..6fdf4fc4dbc 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/build.log +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/build.log @@ -5,6 +5,8 @@ Compiling files: src/B.kt End of files Cleaning output files: +out/production/module/A$AA.class +out/production/module/A.class out/production/module/CompanionExtensionKt.class out/production/module/CompanionReferenceExplicitKt.class out/production/module/CompanionReferenceImplicitKt.class @@ -12,6 +14,7 @@ out/production/module/ImportedMemberKt.class out/production/module/META-INF/module.kotlin_module End of files Compiling files: +src/A.kt src/companionExtension.kt src/companionReferenceExplicit.kt src/companionReferenceImplicit.kt @@ -28,6 +31,7 @@ Cleaning output files: out/production/module/B.class End of files Compiling files: +src/A.kt src/B.kt src/companionExtension.kt src/companionReferenceExplicit.kt diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/methodAdded/build.log b/jps-plugin/testData/incremental/classHierarchyAffected/methodAdded/build.log index 270e4f5daa5..b450c2880fc 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/methodAdded/build.log +++ b/jps-plugin/testData/incremental/classHierarchyAffected/methodAdded/build.log @@ -6,8 +6,10 @@ src/A.kt End of files Cleaning output files: out/production/module/META-INF/module.kotlin_module +out/production/module/foo/AChild.class out/production/module/foo/UseAChildKt.class End of files Compiling files: +src/AChild.kt src/useAChild.kt End of files \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/methodAnnotationAdded/build.log b/jps-plugin/testData/incremental/classHierarchyAffected/methodAnnotationAdded/build.log index 270e4f5daa5..b450c2880fc 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/methodAnnotationAdded/build.log +++ b/jps-plugin/testData/incremental/classHierarchyAffected/methodAnnotationAdded/build.log @@ -6,8 +6,10 @@ src/A.kt End of files Cleaning output files: out/production/module/META-INF/module.kotlin_module +out/production/module/foo/AChild.class out/production/module/foo/UseAChildKt.class End of files Compiling files: +src/AChild.kt src/useAChild.kt End of files \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/methodNullabilityChanged/build.log b/jps-plugin/testData/incremental/classHierarchyAffected/methodNullabilityChanged/build.log index a6e893da45d..534d69f15e7 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/methodNullabilityChanged/build.log +++ b/jps-plugin/testData/incremental/classHierarchyAffected/methodNullabilityChanged/build.log @@ -6,9 +6,11 @@ src/A.kt End of files Cleaning output files: out/production/module/META-INF/module.kotlin_module +out/production/module/foo/AChild.class out/production/module/foo/UseAChildKt.class End of files Compiling files: +src/AChild.kt src/useAChild.kt End of files COMPILATION FAILED @@ -20,5 +22,6 @@ out/production/module/foo/A.class End of files Compiling files: src/A.kt +src/AChild.kt src/useAChild.kt End of files \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt new file mode 100644 index 00000000000..d58cb4fd74b --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt @@ -0,0 +1,3 @@ +open class A { + open fun f(c: C) {} +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt.new.1 b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt.new.1 new file mode 100644 index 00000000000..5c259647d20 --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt.new.1 @@ -0,0 +1,3 @@ +open class A { + open fun f(c: C) {} +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt.new.2 new file mode 100644 index 00000000000..d58cb4fd74b --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/A.kt.new.2 @@ -0,0 +1,3 @@ +open class A { + open fun f(c: C) {} +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/B.kt b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/B.kt new file mode 100644 index 00000000000..fe031bf8549 --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/B.kt @@ -0,0 +1,3 @@ +class B : A() { + override fun f(c: C) {} +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/C.kt b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/C.kt new file mode 100644 index 00000000000..2c74d386ad3 --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/C.kt @@ -0,0 +1 @@ +class C \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/build.log b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/build.log new file mode 100644 index 00000000000..334e8d99380 --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideExplicit/build.log @@ -0,0 +1,23 @@ +Cleaning output files: +out/production/module/A.class +End of files +Compiling files: +src/A.kt +End of files +Cleaning output files: +out/production/module/B.class +End of files +Compiling files: +src/B.kt +End of files +COMPILATION FAILED +'f' overrides nothing + + +Cleaning output files: +out/production/module/A.class +End of files +Compiling files: +src/A.kt +src/B.kt +End of files \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/A.kt b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/A.kt new file mode 100644 index 00000000000..f24918ce642 --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/A.kt @@ -0,0 +1,3 @@ +interface A { + fun f(c: C) +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt new file mode 100644 index 00000000000..4686016741c --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt @@ -0,0 +1,3 @@ +open class B { + fun f(c: C) {} +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt.new.1 b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt.new.1 new file mode 100644 index 00000000000..114a9baca4b --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt.new.1 @@ -0,0 +1,3 @@ +open class B { + fun f(c: C) {} +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt.new.2 new file mode 100644 index 00000000000..4686016741c --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/B.kt.new.2 @@ -0,0 +1,3 @@ +open class B { + fun f(c: C) {} +} \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/BA.kt b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/BA.kt new file mode 100644 index 00000000000..c3556f5d64a --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/BA.kt @@ -0,0 +1 @@ +open class BA : B(), A \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/C.kt b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/C.kt new file mode 100644 index 00000000000..2c74d386ad3 --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/C.kt @@ -0,0 +1 @@ +class C \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/build.log b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/build.log new file mode 100644 index 00000000000..de3e633548e --- /dev/null +++ b/jps-plugin/testData/incremental/classHierarchyAffected/overrideImplicit/build.log @@ -0,0 +1,23 @@ +Cleaning output files: +out/production/module/B.class +End of files +Compiling files: +src/B.kt +End of files +Cleaning output files: +out/production/module/BA.class +End of files +Compiling files: +src/BA.kt +End of files +COMPILATION FAILED +Class 'BA' must be declared abstract or implement abstract member public abstract fun f(c: C): kotlin.Unit defined in A + + +Cleaning output files: +out/production/module/B.class +End of files +Compiling files: +src/B.kt +src/BA.kt +End of files \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/propertyNullabilityChanged/build.log b/jps-plugin/testData/incremental/classHierarchyAffected/propertyNullabilityChanged/build.log index e91a715b155..488756b17ac 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/propertyNullabilityChanged/build.log +++ b/jps-plugin/testData/incremental/classHierarchyAffected/propertyNullabilityChanged/build.log @@ -7,9 +7,11 @@ src/A.kt End of files Cleaning output files: out/production/module/META-INF/module.kotlin_module +out/production/module/foo/AChild.class out/production/module/foo/UseAChildKt.class End of files Compiling files: +src/AChild.kt src/useAChild.kt End of files COMPILATION FAILED @@ -21,5 +23,6 @@ out/production/module/foo/A.class End of files Compiling files: src/A.kt +src/AChild.kt src/useAChild.kt End of files \ No newline at end of file diff --git a/jps-plugin/testData/incremental/lazyKotlinCaches/class/experimental-expected-kotlin-caches.txt b/jps-plugin/testData/incremental/lazyKotlinCaches/class/experimental-expected-kotlin-caches.txt index b12e9b37962..0889bb8f6ae 100644 --- a/jps-plugin/testData/incremental/lazyKotlinCaches/class/experimental-expected-kotlin-caches.txt +++ b/jps-plugin/testData/incremental/lazyKotlinCaches/class/experimental-expected-kotlin-caches.txt @@ -7,6 +7,7 @@ kotlin-data-container Module 'module' production experimental-format-version.txt format-version.txt + class-fq-name-to-source.tab proto.tab source-to-classes.tab -Module 'module' tests +Module 'module' tests \ No newline at end of file diff --git a/jps-plugin/testData/incremental/lazyKotlinCaches/classInheritance/experimental-expected-kotlin-caches.txt b/jps-plugin/testData/incremental/lazyKotlinCaches/classInheritance/experimental-expected-kotlin-caches.txt index 61e7c351e3b..700ec2032f6 100644 --- a/jps-plugin/testData/incremental/lazyKotlinCaches/classInheritance/experimental-expected-kotlin-caches.txt +++ b/jps-plugin/testData/incremental/lazyKotlinCaches/classInheritance/experimental-expected-kotlin-caches.txt @@ -7,8 +7,9 @@ kotlin-data-container Module 'module' production experimental-format-version.txt format-version.txt + class-fq-name-to-source.tab proto.tab source-to-classes.tab subtypes.tab supertypes.tab -Module 'module' tests +Module 'module' tests \ No newline at end of file diff --git a/jps-plugin/testData/incremental/multiModule/circularDependencyClasses/experimental-ic-build.log b/jps-plugin/testData/incremental/multiModule/circularDependencyClasses/experimental-ic-build.log index 11f21fb526c..d7b2fc49156 100644 --- a/jps-plugin/testData/incremental/multiModule/circularDependencyClasses/experimental-ic-build.log +++ b/jps-plugin/testData/incremental/multiModule/circularDependencyClasses/experimental-ic-build.log @@ -7,3 +7,10 @@ End of files Compiling files: module2/src/module2_b.kt End of files +Cleaning output files: +out/production/module1/a/A.class +out/production/module1/a/AA.class +End of files +Compiling files: +module1/src/module1_a.kt +End of files \ No newline at end of file