Drop package facades:
- incremental cache impl should not depend on package facades
- fix trivial incremental compilation tests
TODO: inlines DO NOT WORK with incremental compilation
Original commit: c55106a325
This commit is contained in:
@@ -25,7 +25,7 @@ import java.io.File
|
||||
class CacheFormatVersion(targetDataRoot: File) {
|
||||
companion object {
|
||||
// Change this when incremental cache format changes
|
||||
private val INCREMENTAL_CACHE_OWN_VERSION = 6
|
||||
private val INCREMENTAL_CACHE_OWN_VERSION = 7
|
||||
|
||||
private val CACHE_FORMAT_VERSION =
|
||||
INCREMENTAL_CACHE_OWN_VERSION * 1000000 +
|
||||
|
||||
@@ -67,11 +67,9 @@ public class IncrementalCacheImpl(
|
||||
val PROTO_MAP = "proto"
|
||||
val CONSTANTS_MAP = "constants"
|
||||
val INLINE_FUNCTIONS = "inline-functions"
|
||||
val PACKAGE_PARTS = "package-parts"
|
||||
val MULTIFILE_CLASS_FACADES = "multifile-class-facades"
|
||||
val MULTIFILE_CLASS_PARTS = "multifile-class-parts"
|
||||
val SOURCE_TO_CLASSES = "source-to-classes"
|
||||
val CLASS_TO_SOURCES = "class-to-sources"
|
||||
val DIRTY_OUTPUT_CLASSES = "dirty-output-classes"
|
||||
val DIRTY_INLINE_FUNCTIONS = "dirty-inline-functions"
|
||||
val INLINED_TO = "inlined-to"
|
||||
@@ -93,7 +91,6 @@ public class IncrementalCacheImpl(
|
||||
private val protoMap = registerMap(ProtoMap(PROTO_MAP.storageFile))
|
||||
private val constantsMap = registerMap(ConstantsMap(CONSTANTS_MAP.storageFile))
|
||||
private val inlineFunctionsMap = registerMap(InlineFunctionsMap(INLINE_FUNCTIONS.storageFile))
|
||||
private val packagePartMap = registerMap(PackagePartMap(PACKAGE_PARTS.storageFile))
|
||||
private val multifileClassFacadeMap = registerMap(MultifileClassFacadeMap(MULTIFILE_CLASS_FACADES.storageFile))
|
||||
private val multifileClassPartMap = registerMap(MultifileClassPartMap(MULTIFILE_CLASS_PARTS.storageFile))
|
||||
private val sourceToClassesMap = registerMap(SourceToClassesMap(SOURCE_TO_CLASSES.storageFile))
|
||||
@@ -134,17 +131,7 @@ public class IncrementalCacheImpl(
|
||||
val result = THashSet(FileUtil.PATH_HASHING_STRATEGY)
|
||||
|
||||
for ((className, functions) in dirtyInlineFunctionsMap.getEntries()) {
|
||||
val internalName =
|
||||
if (packagePartMap.isPackagePart(className)) {
|
||||
val packageInternalName = PackageClassUtils.getPackageClassInternalName(className.packageFqName)
|
||||
val packageJvmName = JvmClassName.byInternalName(packageInternalName)
|
||||
packageJvmName.internalName
|
||||
}
|
||||
else {
|
||||
className.internalName
|
||||
}
|
||||
|
||||
val classFilePath = getClassFilePath(internalName)
|
||||
val classFilePath = getClassFilePath(className.internalName)
|
||||
|
||||
fun addFilesAffectedByChangedInlineFuns(cache: IncrementalCacheImpl) {
|
||||
val targetFiles = functions.flatMap { cache.inlinedTo[classFilePath, it] }
|
||||
@@ -190,8 +177,7 @@ public class IncrementalCacheImpl(
|
||||
header.isCompatiblePackageFacadeKind() ->
|
||||
protoMap.process(kotlinClass, isPackage = true)
|
||||
header.isCompatibleFileFacadeKind() -> {
|
||||
assert(sourceFiles.size() == 1) { "Package part from several source files: $sourceFiles" }
|
||||
packagePartMap.addPackagePart(className)
|
||||
assert(sourceFiles.size == 1) { "Package part from several source files: $sourceFiles" }
|
||||
|
||||
protoMap.process(kotlinClass, isPackage = true) +
|
||||
constantsMap.process(kotlinClass) +
|
||||
@@ -207,8 +193,7 @@ public class IncrementalCacheImpl(
|
||||
inlineFunctionsMap.process(kotlinClass)
|
||||
}
|
||||
header.isCompatibleMultifileClassPartKind() -> {
|
||||
assert(sourceFiles.size() == 1) { "Multifile class part from several source files: $sourceFiles" }
|
||||
packagePartMap.addPackagePart(className)
|
||||
assert(sourceFiles.size == 1) { "Multifile class part from several source files: $sourceFiles" }
|
||||
multifileClassPartMap.add(className.internalName, header.multifileClassName!!)
|
||||
|
||||
protoMap.process(kotlinClass, isPackage = true) +
|
||||
@@ -248,7 +233,6 @@ public class IncrementalCacheImpl(
|
||||
|
||||
dirtyClasses.forEach {
|
||||
protoMap.remove(it)
|
||||
packagePartMap.remove(it)
|
||||
multifileClassFacadeMap.remove(it)
|
||||
multifileClassPartMap.remove(it)
|
||||
constantsMap.remove(it)
|
||||
@@ -259,10 +243,11 @@ public class IncrementalCacheImpl(
|
||||
}
|
||||
|
||||
override fun getObsoletePackageParts(): Collection<String> {
|
||||
val obsoletePackageParts =
|
||||
dirtyOutputClassesMap.getDirtyOutputClasses().filter { packagePartMap.isPackagePart(JvmClassName.byInternalName(it)) }
|
||||
KotlinBuilder.LOG.debug("Obsolete package parts: ${obsoletePackageParts}")
|
||||
return obsoletePackageParts
|
||||
return emptyList()
|
||||
// val obsoletePackageParts =
|
||||
// dirtyOutputClassesMap.getDirtyOutputClasses().filter { packagePartMap.isPackagePart(JvmClassName.byInternalName(it)) }
|
||||
// KotlinBuilder.LOG.debug("Obsolete package parts: ${obsoletePackageParts}")
|
||||
// return obsoletePackageParts
|
||||
}
|
||||
|
||||
override fun getPackagePartData(fqName: String): JvmPackagePartProto? {
|
||||
|
||||
@@ -7,7 +7,6 @@ End of files
|
||||
Cleaning output files:
|
||||
out/production/module1/META-INF/module1.kotlin_module
|
||||
out/production/module1/module1/A.class
|
||||
out/production/module1/module1/Module1Package.class
|
||||
out/production/module1/module1/Module1_aKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
@@ -15,7 +14,6 @@ module1/src/module1_a.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module2/META-INF/module2.kotlin_module
|
||||
out/production/module2/module2/Module2Package.class
|
||||
out/production/module2/module2/Module2_bKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
@@ -23,7 +21,6 @@ module2/src/module2_b.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module3/META-INF/module3.kotlin_module
|
||||
out/production/module3/module3/Module3Package.class
|
||||
out/production/module3/module3/Module3_cKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
Cleaning output files:
|
||||
out/production/module1/META-INF/module1.kotlin_module
|
||||
out/production/module1/module1/A.class
|
||||
out/production/module1/module1/Module1Package.class
|
||||
out/production/module1/module1/Module1_aKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
@@ -9,7 +8,6 @@ module1/src/module1_a.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module2/META-INF/module2.kotlin_module
|
||||
out/production/module2/module2/Module2Package.class
|
||||
out/production/module2/module2/Module2_bKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
|
||||
-1
@@ -1,6 +1,5 @@
|
||||
Cleaning output files:
|
||||
out/production/module1/META-INF/module1.kotlin_module
|
||||
out/production/module1/a/APackage.class
|
||||
out/production/module1/a/Module1_AKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
|
||||
-1
@@ -1,7 +1,6 @@
|
||||
Cleaning output files:
|
||||
out/production/module1/META-INF/module1.kotlin_module
|
||||
out/production/module1/a/A.class
|
||||
out/production/module1/a/APackage.class
|
||||
out/production/module1/a/Module1_AKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/test/BKt.class
|
||||
out/production/module/test/TestPackage.class
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module/other/OtherKt.class
|
||||
out/production/module/other/OtherPackage.class
|
||||
out/production/module/test/AKt.class
|
||||
End of files
|
||||
Compiling files:
|
||||
|
||||
@@ -2,7 +2,6 @@ Cleaning output files:
|
||||
out/production/module/META-INF/module.kotlin_module
|
||||
out/production/module/test/AKt.class
|
||||
out/production/module/test/BKt.class
|
||||
out/production/module/test/TestPackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
src/a.kt
|
||||
|
||||
Reference in New Issue
Block a user