[IC] Support precise output backup for kapt stubs

#KT-49785 In Progress
This commit is contained in:
Alexander Likhachev
2022-11-24 20:53:56 +01:00
committed by Space Team
parent 274c9b6294
commit 4c2923f96f
4 changed files with 39 additions and 25 deletions
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.cli.common.output
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.kotlin.backend.common.output.OutputFile
import org.jetbrains.kotlin.backend.common.output.OutputFileCollection
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
@@ -25,11 +24,11 @@ import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil
import java.io.File
import java.io.FileNotFoundException
fun OutputFileCollection.writeAll(outputDir: File, report: ((file: OutputFile, sources: List<File>, output: File) -> Unit)?) {
fun OutputFileCollection.writeAll(outputDir: File, report: ((sources: List<File>, output: File) -> Unit)?) {
for (file in asList()) {
val sources = file.sourceFiles
val output = File(outputDir, file.relativePath)
report?.invoke(file, sources, output)
report?.invoke(sources, output)
try {
FileUtil.writeToFile(output, file.asByteArray())
} catch (e: FileNotFoundException) {
@@ -51,7 +50,7 @@ fun OutputFileCollection.writeAllTo(outputDir: File) {
fun OutputFileCollection.writeAll(outputDir: File, messageCollector: MessageCollector, reportOutputFiles: Boolean) {
try {
if (!reportOutputFiles) writeAllTo(outputDir)
else writeAll(outputDir) { _, sources, output ->
else writeAll(outputDir) { sources, output ->
messageCollector.report(CompilerMessageSeverity.OUTPUT, OutputMessageUtil.formatOutputMessage(sources, output))
}
} catch (e: NoPermissionException) {