Remove Target parameter from GeneratedFile

This commit is contained in:
Alexey Tsvetkov
2017-07-03 17:46:51 +03:00
parent af73082fcc
commit 9727ec401b
7 changed files with 63 additions and 115 deletions
@@ -21,17 +21,15 @@ import org.jetbrains.kotlin.load.kotlin.ModuleMapping
import org.jetbrains.kotlin.utils.sure
import java.io.File
open class GeneratedFile<Target>(
val target: Target,
val sourceFiles: Collection<File>,
val outputFile: File
open class GeneratedFile(
val sourceFiles: Collection<File>,
val outputFile: File
)
class GeneratedJvmClass<Target> (
target: Target,
class GeneratedJvmClass (
sourceFiles: Collection<File>,
outputFile: File
) : GeneratedFile<Target>(target, sourceFiles, outputFile) {
) : GeneratedFile(sourceFiles, outputFile) {
val outputClass = LocalFileKotlinClass.create(outputFile).sure {
"Couldn't load KotlinClass from $outputFile; it may happen because class doesn't have valid Kotlin annotations"
}
@@ -16,9 +16,17 @@
package org.jetbrains.kotlin.compilerRunner
import org.jetbrains.kotlin.build.GeneratedFile
import org.jetbrains.kotlin.build.GeneratedJvmClass
import java.io.File
data class SimpleOutputItem(val sourceFiles: Collection<File>, val outputFile: File) {
override fun toString(): String =
"$sourceFiles->$outputFile"
}
fun SimpleOutputItem.toGeneratedFile(): GeneratedFile =
when {
outputFile.name.endsWith(".class") -> GeneratedJvmClass(sourceFiles, outputFile)
else -> GeneratedFile(sourceFiles, outputFile)
}
@@ -114,7 +114,7 @@ open class IncrementalCacheImpl(
return CompilationResult.NO_CHANGES
}
open fun saveFileToCache(generatedClass: GeneratedJvmClass<*>): CompilationResult {
open fun saveFileToCache(generatedClass: GeneratedJvmClass): CompilationResult {
val sourceFiles: Collection<File> = generatedClass.sourceFiles
val kotlinClass: LocalFileKotlinClass = generatedClass.outputClass
val className = kotlinClass.className
@@ -77,13 +77,13 @@ fun makeCompileServices(
}
fun updateIncrementalCache(
generatedFiles: List<GeneratedFile<*>>,
generatedFiles: Iterable<GeneratedFile>,
cache: IncrementalCacheImpl
): CompilationResult {
var changesInfo = CompilationResult.NO_CHANGES
for (generatedFile in generatedFiles) {
when {
generatedFile is GeneratedJvmClass<*> -> changesInfo += cache.saveFileToCache(generatedFile)
generatedFile is GeneratedJvmClass -> changesInfo += cache.saveFileToCache(generatedFile)
generatedFile.outputFile.isModuleMappingFile() -> changesInfo += cache.saveModuleMappingToCache(generatedFile.sourceFiles, generatedFile.outputFile)
}
}