Rework KotlinModuleMetadata to align it with KotlinClassMetadata:

- Public constructor with KmModule and JvmMetadataVersion
- make write() member function
This commit is contained in:
Leonid Startsev
2023-11-21 17:58:41 +01:00
committed by Space Team
parent 6e9a62c317
commit 048802e143
6 changed files with 102 additions and 93 deletions
@@ -44,7 +44,7 @@ class Kotlinp(private val settings: KotlinpSettings) {
@OptIn(UnstableMetadataApi::class)
internal fun readModuleFile(file: File): KotlinModuleMetadata? =
KotlinModuleMetadata.read(file.readBytes())
runCatching { KotlinModuleMetadata.read(file.readBytes()) }.getOrNull()
}
data class KotlinpSettings(
@@ -69,7 +69,7 @@ private fun compileAndPrintAllFiles(
when (outputFile.extension) {
"kotlin_module" -> {
val moduleFile = kotlinp.readModuleFile(outputFile)!!
val transformedWithNodes = KotlinModuleMetadata.read(transformModuleFileWithNodes(moduleFile))
val transformedWithNodes = KotlinModuleMetadata.read(moduleFile.write())
for ((sb, moduleFileToRender) in listOf(
main to moduleFile, afterNodes to transformedWithNodes
@@ -128,7 +128,3 @@ private fun StringBuilder.appendFileName(file: File) {
appendLine("// ${file.invariantSeparatorsPath}")
appendLine("// ------------------------------------------")
}
@OptIn(UnstableMetadataApi::class)
private fun transformModuleFileWithNodes(moduleFile: KotlinModuleMetadata): ByteArray =
KotlinModuleMetadata.write(moduleFile.kmModule)