Print recompilation reasons in build report

This commit is contained in:
Alexey Tsvetkov
2019-01-29 02:41:50 +03:00
parent 47bb938b94
commit 01c23510c7
6 changed files with 55 additions and 23 deletions
@@ -18,10 +18,13 @@ class DirtyFilesContainer(
fun toMutableList(): MutableList<File> =
ArrayList(myDirtyFiles)
fun add(files: Iterable<File>) {
fun add(files: Iterable<File>, reason: String?) {
val existingKotlinFiles = files.filter { it.isKotlinFile(sourceFilesExtensions) }
if (existingKotlinFiles.isNotEmpty()) {
myDirtyFiles.addAll(existingKotlinFiles)
if (reason != null) {
reporter.reportMarkDirty(existingKotlinFiles, reason)
}
}
}
@@ -29,7 +32,8 @@ class DirtyFilesContainer(
if (lookupSymbols.isEmpty()) return
val dirtyFilesFromLookups = mapLookupSymbolsToFiles(caches.lookupCache, lookupSymbols, reporter)
add(dirtyFilesFromLookups)
// reason is null, because files are reported in mapLookupSymbolsToFiles
add(dirtyFilesFromLookups, reason = null)
}
fun addByDirtyClasses(dirtyClassesFqNames: Collection<FqName>) {
@@ -43,6 +47,7 @@ class DirtyFilesContainer(
}
val dirtyFilesFromFqNames =
mapClassesFqNamesToFiles(listOf(caches.platformCache), fqNamesWithSubtypes, reporter)
add(dirtyFilesFromFqNames)
// reason is null, because files are reported in mapClassesFqNamesToFiles
add(dirtyFilesFromFqNames, reason = null)
}
}
@@ -139,16 +139,16 @@ abstract class IncrementalCompilerRunner<
protected abstract fun calculateSourcesToCompile(caches: CacheManager, changedFiles: ChangedFiles.Known, args: Args): CompilationMode
protected fun initDirtyFiles(dirtyFiles: DirtyFilesContainer, changedFiles: ChangedFiles.Known) {
dirtyFiles.add(changedFiles.modified)
dirtyFiles.add(changedFiles.removed)
dirtyFiles.add(changedFiles.modified, "was modified since last time")
dirtyFiles.add(changedFiles.removed, "was removed since last time")
if (dirtySourcesSinceLastTimeFile.exists()) {
val files = dirtySourcesSinceLastTimeFile.readLines().map(::File)
if (files.isNotEmpty()) {
reporter.report { "Source files added since last compilation: ${reporter.pathsAsString(files)}" }
reporter.reportVerbose { "Source files added since last compilation: ${reporter.pathsAsString(files)}" }
}
dirtyFiles.add(files)
dirtyFiles.add(files, "was not compiled last time")
}
}