JS PIR: carrier serializer / deserializer
This commit is contained in:
committed by
TeamCityServer
parent
030498c5e1
commit
c97066527c
@@ -5,6 +5,7 @@ plugins {
|
||||
|
||||
dependencies {
|
||||
compileOnly(project(":compiler:ir.tree"))
|
||||
implementation(project(":compiler:ir.serialization.common"))
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
|
||||
+272
@@ -0,0 +1,272 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.ir.serialization
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.serialization.codedInputStream
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrConstructorCall as ProtoIrConstructorCall
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrVariable as ProtoIrVariable
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirAnonymousInitializerCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirClassCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirConstructorCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirEnumEntryCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirErrorDeclarationCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirFieldCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirFunctionCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirLocalDelegatedPropertyCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirPropertyCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirTypeAliasCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirTypeParameterCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirValueParameterCarrier
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||
import org.jetbrains.kotlin.ir.declarations.IrVariable
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.AnonymousInitializerCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.AnonymousInitializerCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ClassCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ClassCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ConstructorCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ConstructorCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.EnumEntryCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.EnumEntryCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ErrorDeclarationCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ErrorDeclarationCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FieldCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FieldCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FunctionCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FunctionCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.LocalDelegatedPropertyCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.LocalDelegatedPropertyCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.PropertyCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.PropertyCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeAliasCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeAliasCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeParameterCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeParameterCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ValueParameterCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ValueParameterCarrierImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite
|
||||
|
||||
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
|
||||
|
||||
internal abstract class IrCarrierDeserializer {
|
||||
|
||||
abstract fun deserializeParentSymbol(proto: Long): IrSymbol
|
||||
|
||||
abstract fun deserializeOrigin(proto: Int): IrDeclarationOrigin
|
||||
|
||||
abstract fun deserializeAnnotation(proto: ProtoIrConstructorCall): IrConstructorCall
|
||||
|
||||
abstract fun deserializeBody(proto: Int): IrBody
|
||||
|
||||
abstract fun deserializeBlockBody(proto: Int): IrBlockBody
|
||||
|
||||
abstract fun deserializeExpressionBody(proto: Int): IrExpressionBody
|
||||
|
||||
abstract fun deserializeValueParameter(proto: Long): IrValueParameterSymbol
|
||||
|
||||
abstract fun deserializeTypeParameter(proto: Long): IrTypeParameterSymbol
|
||||
|
||||
abstract fun deserializeSuperType(proto: Int): IrType
|
||||
|
||||
abstract fun deserializeType(proto: Int): IrType
|
||||
|
||||
abstract fun deserializeClass(proto: Long): IrClassSymbol
|
||||
|
||||
abstract fun deserializePropertySymbol(proto: Long): IrPropertySymbol
|
||||
|
||||
abstract fun deserializeSimpleFunction(proto: Long): IrSimpleFunctionSymbol
|
||||
|
||||
abstract fun deserializeSimpleFunctionSymbol(proto: Long): IrSimpleFunctionSymbol
|
||||
|
||||
abstract fun deserializeField(proto: Long): IrFieldSymbol
|
||||
|
||||
abstract fun deserializeVariable(proto: ProtoIrVariable): IrVariable
|
||||
|
||||
abstract fun deserializeVisibility(proto: Long): DescriptorVisibility
|
||||
|
||||
abstract fun deserializeModality(proto: Long): Modality
|
||||
|
||||
abstract fun deserializeIsExternalClass(proto: Long): Boolean
|
||||
|
||||
abstract fun deserializeIsExternalField(proto: Long): Boolean
|
||||
|
||||
abstract fun deserializeIsExternalFunction(proto: Long): Boolean
|
||||
|
||||
abstract fun deserializeIsExternalProperty(proto: Long): Boolean
|
||||
|
||||
fun deserializeAnonymousInitializerCarrier(bytes: ByteArray): AnonymousInitializerCarrier {
|
||||
val proto = PirAnonymousInitializerCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return AnonymousInitializerCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
if (proto.hasBody()) deserializeBlockBody(proto.body) else null
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeClassCarrier(bytes: ByteArray): ClassCarrier {
|
||||
val proto = PirClassCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return ClassCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
if (proto.hasThisReceiver()) deserializeValueParameter(proto.thisReceiver) else null,
|
||||
deserializeVisibility(proto.flags),
|
||||
deserializeModality(proto.flags),
|
||||
proto.typeParametersList.map { deserializeTypeParameter(it) },
|
||||
proto.superTypesList.map { deserializeSuperType(it) }
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeConstructorCarrier(bytes: ByteArray): ConstructorCarrier {
|
||||
val proto = PirConstructorCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return ConstructorCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
deserializeType(proto.returnTypeField),
|
||||
if (proto.hasDispatchReceiverParameter()) deserializeValueParameter(proto.dispatchReceiverParameter) else null,
|
||||
if (proto.hasExtensionReceiverParameter()) deserializeValueParameter(proto.extensionReceiverParameter) else null,
|
||||
if (proto.hasBody()) deserializeBody(proto.body) else null,
|
||||
deserializeVisibility(proto.flags),
|
||||
proto.typeParametersList.map { deserializeTypeParameter(it) },
|
||||
proto.valueParametersList.map { deserializeValueParameter(it) }
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeEnumEntryCarrier(bytes: ByteArray): EnumEntryCarrier {
|
||||
val proto = PirEnumEntryCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return EnumEntryCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
if (proto.hasCorrespondingClass()) deserializeClass(proto.correspondingClass) else null,
|
||||
if (proto.hasInitializerExpression()) deserializeExpressionBody(proto.initializerExpression) else null
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeErrorDeclarationCarrier(bytes: ByteArray): ErrorDeclarationCarrier {
|
||||
val proto = PirErrorDeclarationCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return ErrorDeclarationCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) }
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeFieldCarrier(bytes: ByteArray): FieldCarrier {
|
||||
val proto = PirFieldCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return FieldCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
deserializeType(proto.type),
|
||||
if (proto.hasInitializer()) deserializeExpressionBody(proto.initializer) else null,
|
||||
if (proto.hasCorrespondingPropertySymbol()) deserializePropertySymbol(proto.correspondingPropertySymbol) else null
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeFunctionCarrier(bytes: ByteArray): FunctionCarrier {
|
||||
val proto = PirFunctionCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return FunctionCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
deserializeType(proto.returnTypeField),
|
||||
if (proto.hasDispatchReceiverParameter()) deserializeValueParameter(proto.dispatchReceiverParameter) else null,
|
||||
if (proto.hasExtensionReceiverParameter()) deserializeValueParameter(proto.extensionReceiverParameter) else null,
|
||||
if (proto.hasBody()) deserializeBody(proto.body) else null,
|
||||
deserializeVisibility(proto.flags),
|
||||
proto.typeParametersList.map { deserializeTypeParameter(it) },
|
||||
proto.valueParametersList.map { deserializeValueParameter(it) },
|
||||
if (proto.hasCorrespondingPropertySymbol()) deserializePropertySymbol(proto.correspondingPropertySymbol) else null,
|
||||
proto.overriddenSymbolsList.map { deserializeSimpleFunctionSymbol(it) }
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeLocalDelegatedPropertyCarrier(bytes: ByteArray): LocalDelegatedPropertyCarrier {
|
||||
val proto = PirLocalDelegatedPropertyCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return LocalDelegatedPropertyCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
deserializeType(proto.type),
|
||||
if (proto.hasDelegate()) deserializeVariable(proto.delegate) else null,
|
||||
if (proto.hasGetter()) deserializeSimpleFunction(proto.getter) else null,
|
||||
if (proto.hasSetter()) deserializeSimpleFunction(proto.setter) else null
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializePropertyCarrier(bytes: ByteArray): PropertyCarrier {
|
||||
val proto = PirPropertyCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return PropertyCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
if (proto.hasBackingField()) deserializeField(proto.backingField) else null,
|
||||
if (proto.hasGetter()) deserializeSimpleFunction(proto.getter) else null,
|
||||
if (proto.hasSetter()) deserializeSimpleFunction(proto.setter) else null
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeTypeAliasCarrier(bytes: ByteArray): TypeAliasCarrier {
|
||||
val proto = PirTypeAliasCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return TypeAliasCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
proto.typeParametersList.map { deserializeTypeParameter(it) },
|
||||
deserializeType(proto.expandedType)
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeTypeParameterCarrier(bytes: ByteArray): TypeParameterCarrier {
|
||||
val proto = PirTypeParameterCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return TypeParameterCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
proto.superTypesList.map { deserializeSuperType(it) }
|
||||
)
|
||||
}
|
||||
|
||||
fun deserializeValueParameterCarrier(bytes: ByteArray): ValueParameterCarrier {
|
||||
val proto = PirValueParameterCarrier.parseFrom(bytes.codedInputStream, ExtensionRegistryLite.newInstance())
|
||||
return ValueParameterCarrierImpl(
|
||||
proto.lastModified,
|
||||
if (proto.hasParentSymbol()) deserializeParentSymbol(proto.parentSymbol) else null,
|
||||
deserializeOrigin(proto.origin),
|
||||
proto.annotationList.map { deserializeAnnotation(it) },
|
||||
if (proto.hasDefaultValue()) deserializeExpressionBody(proto.defaultValue) else null,
|
||||
deserializeType(proto.type),
|
||||
if (proto.hasVarargElementType()) deserializeType(proto.varargElementType) else null
|
||||
)
|
||||
}
|
||||
}
|
||||
+245
@@ -0,0 +1,245 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.ir.serialization
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrConstructorCall as ProtoIrConstructorCall
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.IrVariable as ProtoIrVariable
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirAnonymousInitializerCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirClassCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirConstructorCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirEnumEntryCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirErrorDeclarationCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirFieldCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirFunctionCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirLocalDelegatedPropertyCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirPropertyCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirTypeAliasCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirTypeParameterCarrier
|
||||
import org.jetbrains.kotlin.backend.common.serialization.proto.PirValueParameterCarrier
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||
import org.jetbrains.kotlin.ir.declarations.IrVariable
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.AnonymousInitializerCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ClassCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ConstructorCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.EnumEntryCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ErrorDeclarationCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FieldCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FunctionCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.LocalDelegatedPropertyCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.PropertyCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeAliasCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeParameterCarrier
|
||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ValueParameterCarrier
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
|
||||
// Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
|
||||
|
||||
internal abstract class IrCarrierSerializer {
|
||||
|
||||
abstract fun serializeParentSymbol(value: IrSymbol): Long
|
||||
|
||||
abstract fun serializeOrigin(value: IrDeclarationOrigin): Int
|
||||
|
||||
abstract fun serializeAnnotation(value: IrConstructorCall): ProtoIrConstructorCall
|
||||
|
||||
abstract fun serializeBody(value: IrBody): Int
|
||||
|
||||
abstract fun serializeBlockBody(value: IrBlockBody): Int
|
||||
|
||||
abstract fun serializeExpressionBody(value: IrExpressionBody): Int
|
||||
|
||||
abstract fun serializeValueParameter(value: IrValueParameterSymbol): Long
|
||||
|
||||
abstract fun serializeTypeParameter(value: IrTypeParameterSymbol): Long
|
||||
|
||||
abstract fun serializeSuperType(value: IrType): Int
|
||||
|
||||
abstract fun serializeType(value: IrType): Int
|
||||
|
||||
abstract fun serializeClass(value: IrClassSymbol): Long
|
||||
|
||||
abstract fun serializePropertySymbol(value: IrPropertySymbol): Long
|
||||
|
||||
abstract fun serializeSimpleFunction(value: IrSimpleFunctionSymbol): Long
|
||||
|
||||
abstract fun serializeSimpleFunctionSymbol(value: IrSimpleFunctionSymbol): Long
|
||||
|
||||
abstract fun serializeField(value: IrFieldSymbol): Long
|
||||
|
||||
abstract fun serializeVariable(value: IrVariable): ProtoIrVariable
|
||||
|
||||
abstract fun serializeVisibility(value: DescriptorVisibility): Long
|
||||
|
||||
abstract fun serializeModality(value: Modality): Long
|
||||
|
||||
abstract fun serializeIsExternalClass(value: Boolean): Long
|
||||
|
||||
abstract fun serializeIsExternalField(value: Boolean): Long
|
||||
|
||||
abstract fun serializeIsExternalFunction(value: Boolean): Long
|
||||
|
||||
abstract fun serializeIsExternalProperty(value: Boolean): Long
|
||||
|
||||
fun serializeAnonymousInitializerCarrier(carrier: AnonymousInitializerCarrier): ByteArray {
|
||||
val proto = PirAnonymousInitializerCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
carrier.bodyField?.let { proto.setBody(serializeBlockBody(it)) }
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeClassCarrier(carrier: ClassCarrier): ByteArray {
|
||||
val proto = PirClassCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
carrier.thisReceiverSymbolField?.let { proto.setThisReceiver(serializeValueParameter(it)) }
|
||||
proto.setFlags(serializeVisibility(carrier.visibilityField) or serializeModality(carrier.modalityField))
|
||||
proto.addAllTypeParameters(carrier.typeParametersSymbolField.map { serializeTypeParameter(it) })
|
||||
proto.addAllSuperTypes(carrier.superTypesField.map { serializeSuperType(it) })
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeConstructorCarrier(carrier: ConstructorCarrier): ByteArray {
|
||||
val proto = PirConstructorCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
proto.setReturnTypeField(serializeType(carrier.returnTypeFieldField))
|
||||
carrier.dispatchReceiverParameterSymbolField?.let { proto.setDispatchReceiverParameter(serializeValueParameter(it)) }
|
||||
carrier.extensionReceiverParameterSymbolField?.let { proto.setExtensionReceiverParameter(serializeValueParameter(it)) }
|
||||
carrier.bodyField?.let { proto.setBody(serializeBody(it)) }
|
||||
proto.setFlags(serializeVisibility(carrier.visibilityField))
|
||||
proto.addAllTypeParameters(carrier.typeParametersSymbolField.map { serializeTypeParameter(it) })
|
||||
proto.addAllValueParameters(carrier.valueParametersSymbolField.map { serializeValueParameter(it) })
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeEnumEntryCarrier(carrier: EnumEntryCarrier): ByteArray {
|
||||
val proto = PirEnumEntryCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
carrier.correspondingClassSymbolField?.let { proto.setCorrespondingClass(serializeClass(it)) }
|
||||
carrier.initializerExpressionField?.let { proto.setInitializerExpression(serializeExpressionBody(it)) }
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeErrorDeclarationCarrier(carrier: ErrorDeclarationCarrier): ByteArray {
|
||||
val proto = PirErrorDeclarationCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeFieldCarrier(carrier: FieldCarrier): ByteArray {
|
||||
val proto = PirFieldCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
proto.setType(serializeType(carrier.typeField))
|
||||
carrier.initializerField?.let { proto.setInitializer(serializeExpressionBody(it)) }
|
||||
carrier.correspondingPropertySymbolField?.let { proto.setCorrespondingPropertySymbol(serializePropertySymbol(it)) }
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeFunctionCarrier(carrier: FunctionCarrier): ByteArray {
|
||||
val proto = PirFunctionCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
proto.setReturnTypeField(serializeType(carrier.returnTypeFieldField))
|
||||
carrier.dispatchReceiverParameterSymbolField?.let { proto.setDispatchReceiverParameter(serializeValueParameter(it)) }
|
||||
carrier.extensionReceiverParameterSymbolField?.let { proto.setExtensionReceiverParameter(serializeValueParameter(it)) }
|
||||
carrier.bodyField?.let { proto.setBody(serializeBody(it)) }
|
||||
proto.setFlags(serializeVisibility(carrier.visibilityField))
|
||||
proto.addAllTypeParameters(carrier.typeParametersSymbolField.map { serializeTypeParameter(it) })
|
||||
proto.addAllValueParameters(carrier.valueParametersSymbolField.map { serializeValueParameter(it) })
|
||||
carrier.correspondingPropertySymbolField?.let { proto.setCorrespondingPropertySymbol(serializePropertySymbol(it)) }
|
||||
proto.addAllOverriddenSymbols(carrier.overriddenSymbolsField.map { serializeSimpleFunctionSymbol(it) })
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeLocalDelegatedPropertyCarrier(carrier: LocalDelegatedPropertyCarrier): ByteArray {
|
||||
val proto = PirLocalDelegatedPropertyCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
proto.setType(serializeType(carrier.typeField))
|
||||
carrier.delegateField?.let { proto.setDelegate(serializeVariable(it)) }
|
||||
carrier.getterSymbolField?.let { proto.setGetter(serializeSimpleFunction(it)) }
|
||||
carrier.setterSymbolField?.let { proto.setSetter(serializeSimpleFunction(it)) }
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializePropertyCarrier(carrier: PropertyCarrier): ByteArray {
|
||||
val proto = PirPropertyCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
carrier.backingFieldSymbolField?.let { proto.setBackingField(serializeField(it)) }
|
||||
carrier.getterSymbolField?.let { proto.setGetter(serializeSimpleFunction(it)) }
|
||||
carrier.setterSymbolField?.let { proto.setSetter(serializeSimpleFunction(it)) }
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeTypeAliasCarrier(carrier: TypeAliasCarrier): ByteArray {
|
||||
val proto = PirTypeAliasCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
proto.addAllTypeParameters(carrier.typeParametersSymbolField.map { serializeTypeParameter(it) })
|
||||
proto.setExpandedType(serializeType(carrier.expandedTypeField))
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeTypeParameterCarrier(carrier: TypeParameterCarrier): ByteArray {
|
||||
val proto = PirTypeParameterCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
proto.addAllSuperTypes(carrier.superTypesField.map { serializeSuperType(it) })
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
|
||||
fun serializeValueParameterCarrier(carrier: ValueParameterCarrier): ByteArray {
|
||||
val proto = PirValueParameterCarrier.newBuilder()
|
||||
proto.setLastModified(carrier.lastModified)
|
||||
carrier.parentSymbolField?.let { proto.setParentSymbol(serializeParentSymbol(it)) }
|
||||
proto.setOrigin(serializeOrigin(carrier.originField))
|
||||
proto.addAllAnnotation(carrier.annotationsField.map { serializeAnnotation(it) })
|
||||
carrier.defaultValueField?.let { proto.setDefaultValue(serializeExpressionBody(it)) }
|
||||
proto.setType(serializeType(carrier.typeField))
|
||||
carrier.varargElementTypeField?.let { proto.setVarargElementType(serializeType(it)) }
|
||||
return proto.build().toByteArray()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user