Add Package.packageFqName serializer extension
This commit is contained in:
committed by
vvlevchenko
parent
c76c214763
commit
1d0ec313b5
+4
@@ -15,6 +15,10 @@ option optimize_for = LITE_RUNTIME;
|
|||||||
|
|
||||||
// Konan extensions to the "descriptors" protobuf.
|
// Konan extensions to the "descriptors" protobuf.
|
||||||
|
|
||||||
|
extend Package {
|
||||||
|
optional int32 package_fq_name = 171;
|
||||||
|
}
|
||||||
|
|
||||||
extend Class {
|
extend Class {
|
||||||
repeated Annotation class_annotation = 170;
|
repeated Annotation class_annotation = 170;
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-12
@@ -2,32 +2,26 @@ package org.jetbrains.kotlin.backend.konan.serialization
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.KonanPlatform
|
import org.jetbrains.kotlin.backend.konan.KonanPlatform
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.base64Encode
|
|
||||||
import org.jetbrains.kotlin.backend.konan.llvm.base64Decode
|
import org.jetbrains.kotlin.backend.konan.llvm.base64Decode
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
import org.jetbrains.kotlin.backend.konan.llvm.base64Encode
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl;
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.CompilerDeserializationConfiguration
|
import org.jetbrains.kotlin.resolve.CompilerDeserializationConfiguration
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.serialization.AnnotationSerializer
|
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
|
||||||
import org.jetbrains.kotlin.serialization.StringTableImpl
|
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.*
|
|
||||||
import org.jetbrains.kotlin.serialization.KonanLinkData
|
import org.jetbrains.kotlin.serialization.KonanLinkData
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.FlexibleTypeDeserializer
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.*
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
import org.jetbrains.kotlin.types.SimpleType
|
import org.jetbrains.kotlin.types.SimpleType
|
||||||
import org.jetbrains.kotlin.utils.*
|
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
|
||||||
|
|
||||||
/* ------------ Deserializer part ------------------------------------------*/
|
/* ------------ Deserializer part ------------------------------------------*/
|
||||||
|
|
||||||
@@ -152,7 +146,7 @@ internal class KonanSerializationUtil(val context: Context) {
|
|||||||
val members = fragments
|
val members = fragments
|
||||||
.flatMap { fragment -> DescriptorUtils.getAllDescriptors(fragment.getMemberScope()) }
|
.flatMap { fragment -> DescriptorUtils.getAllDescriptors(fragment.getMemberScope()) }
|
||||||
.filterNot(skip)
|
.filterNot(skip)
|
||||||
val packageProto = serializer.packagePartProto(members).build()
|
val packageProto = serializer.packagePartProto(fqName, members).build()
|
||||||
?: error("Package fragments not serialized: $fragments")
|
?: error("Package fragments not serialized: $fragments")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+5
-12
@@ -18,19 +18,11 @@ package org.jetbrains.kotlin.backend.konan.serialization
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.Context
|
import org.jetbrains.kotlin.backend.konan.Context
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.getKonanInternalClass
|
import org.jetbrains.kotlin.backend.konan.descriptors.getKonanInternalClass
|
||||||
import org.jetbrains.kotlin.serialization.Flags
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
import org.jetbrains.kotlin.serialization.KonanLinkData
|
import org.jetbrains.kotlin.descriptors.SourceElement
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptorImpl
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.*
|
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.*
|
|
||||||
import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite
|
import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.serialization.*
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
|
||||||
import org.jetbrains.kotlin.resolve.source.PsiSourceFile
|
|
||||||
import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase
|
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
|
||||||
import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol
|
|
||||||
import org.jetbrains.kotlin.types.FlexibleType
|
|
||||||
|
|
||||||
internal class KonanSerializerExtension(val context: Context) :
|
internal class KonanSerializerExtension(val context: Context) :
|
||||||
KotlinSerializerExtensionBase(KonanSerializerProtocol) {
|
KotlinSerializerExtensionBase(KonanSerializerProtocol) {
|
||||||
@@ -59,6 +51,7 @@ object KonanSerializerProtocol : SerializerExtensionProtocol(
|
|||||||
ExtensionRegistryLite.newInstance().apply {
|
ExtensionRegistryLite.newInstance().apply {
|
||||||
KonanLinkData.registerAllExtensions(this)
|
KonanLinkData.registerAllExtensions(this)
|
||||||
},
|
},
|
||||||
|
KonanLinkData.packageFqName,
|
||||||
KonanLinkData.constructorAnnotation,
|
KonanLinkData.constructorAnnotation,
|
||||||
KonanLinkData.classAnnotation,
|
KonanLinkData.classAnnotation,
|
||||||
KonanLinkData.functionAnnotation,
|
KonanLinkData.functionAnnotation,
|
||||||
|
|||||||
Reference in New Issue
Block a user