JS: (review fix) Header -> InlineData
This commit is contained in:
@@ -194,21 +194,21 @@ class K2JSTranslator @JvmOverloads constructor(
|
||||
metadataVersion ?: JsMetadataVersion.INSTANCE
|
||||
)
|
||||
|
||||
val header = serializeHeader(fileTranslationResult.inlineFunctionTags)
|
||||
val inlineData = serializeInlineData(fileTranslationResult.inlineFunctionTags)
|
||||
|
||||
val ioFile = VfsUtilCore.virtualToIoFile(file.virtualFile)
|
||||
incrementalResults?.processPackagePart(ioFile, packagePart.toByteArray(), binaryAst, header)
|
||||
incrementalResults?.processPackagePart(ioFile, packagePart.toByteArray(), binaryAst, inlineData)
|
||||
}
|
||||
|
||||
val settings = config.configuration.languageVersionSettings
|
||||
incrementalResults?.processHeader(KotlinJavascriptSerializationUtil.serializeHeader(moduleDescriptor, null, settings).toByteArray())
|
||||
}
|
||||
|
||||
private fun serializeHeader(importedTags: Set<String>): ByteArray {
|
||||
private fun serializeInlineData(importedTags: Set<String>): ByteArray {
|
||||
val output = ByteArrayOutputStream()
|
||||
val headerBuilder = JsAstProtoBuf.Header.newBuilder()
|
||||
headerBuilder.addAllInlineFunctionTags(importedTags)
|
||||
headerBuilder.build().writeTo(output)
|
||||
val inlineDataBuilder = JsAstProtoBuf.InlineData.newBuilder()
|
||||
inlineDataBuilder.addAllInlineFunctionTags(importedTags)
|
||||
inlineDataBuilder.build().writeTo(output)
|
||||
return output.toByteArray()
|
||||
}
|
||||
|
||||
|
||||
@@ -21,5 +21,5 @@ import org.jetbrains.kotlin.psi.KtFile
|
||||
sealed class TranslationUnit {
|
||||
class SourceFile(val file: KtFile) : TranslationUnit()
|
||||
|
||||
class BinaryAst(val data: ByteArray, val header: ByteArray) : TranslationUnit()
|
||||
class BinaryAst(val data: ByteArray, val inlineData: ByteArray) : TranslationUnit()
|
||||
}
|
||||
|
||||
+2
-3
@@ -50,12 +50,11 @@ class AstGenerationResult(
|
||||
is TranslationUnit.SourceFile -> translatedSourceFiles[unit]!!
|
||||
is TranslationUnit.BinaryAst -> cache.getOrPut(unit) {
|
||||
// TODO Don't deserialize header twice
|
||||
val headerData = unit.header
|
||||
val header = JsAstProtoBuf.Header.parseFrom(CodedInputStream.newInstance(headerData))
|
||||
val inlineData = JsAstProtoBuf.InlineData.parseFrom(CodedInputStream.newInstance(unit.inlineData))
|
||||
|
||||
DeserializedFileTranslationResult(
|
||||
deserializer.deserialize(ByteArrayInputStream(unit.data)),
|
||||
HashSet(header.inlineFunctionTagsList)
|
||||
HashSet(inlineData.inlineFunctionTagsList)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,8 +347,8 @@ public final class Translation {
|
||||
translatedSourceFiles.put(sourceFileUnit, new SourceFileTranslationResult(fragment, staticContext.getInlineFunctionTags(), fileMemberScope));
|
||||
}
|
||||
else if (unit instanceof TranslationUnit.BinaryAst) {
|
||||
byte[] headerData = ((TranslationUnit.BinaryAst) unit).getHeader();
|
||||
JsAstProtoBuf.Header h = JsAstProtoBuf.Header.parseFrom(CodedInputStream.newInstance(headerData));
|
||||
byte[] inlineDataArray = ((TranslationUnit.BinaryAst) unit).getInlineData();
|
||||
JsAstProtoBuf.InlineData h = JsAstProtoBuf.InlineData.parseFrom(CodedInputStream.newInstance(inlineDataArray));
|
||||
for (String tag : h.getInlineFunctionTagsList()) {
|
||||
assert !inlineFunctionTagMap.containsKey(tag) : "Duplicate inline function tag found: '" + tag + "'";
|
||||
inlineFunctionTagMap.put(tag, unit);
|
||||
|
||||
Reference in New Issue
Block a user